
    ai.                       S SK r S SKJrJr  S SKJrJrJ	r
   " S S5      r " S S\5      r " S S	5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rS.S jrS.S  jrS! rS.S" jrS.S# jrS$ rS% rSS&.S' jrS( r SS&.S) jr!SS&.S* jr"SS&.S+ jr#\\4r$\%S,:X  a  S S-K&J'r'  \$ H  r(\'" \(5        M     gg)/    N)MenuPanel)contextspgettext_iface
pgettext_nc                       \ rS rSr1 SkrSrSrSrSr\	S 5       r
\	S 5       r\	S 5       r\	S	 5       r\	S
 5       r\	S 5       r\S 5       r\SS j5       rSrg)BrushAssetShelf   >   NO_ASSET_DRAGDEFAULT_VISIBLEACTIVATE_FOR_CONTEXT_MENU%STORE_ENABLED_CATALOGS_IN_PREFERENCESBRUSH_OT_asset_activateTNc                 d    [        USS 5      =nS L=(       a    UR                  U R                  :H  $ )Nobject)getattrmode)clscontextobs      e/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_ui/properties_paint_common.pypollBrushAssetShelf.poll   s0    gx66tC[SVS[S[H[[    c                    SSK Jn  UR                  R                  n[        R
                  R                  R                  R                  U R                     R                  nUR                  U5      nUR                  UR                  XR                  S95       Hf  nUc  M  UR                  S;   a  M  UR                   b  SUR                   ;  a  M9  UR"                  c  MH  XWR"                     R$                  U:X  d  Mf    g   g)Nr   ToolSelectPanelHelper)r      builtin.arcbuiltin.boxbuiltin.linebuiltin.curvebuiltin.circlebuiltin.polylineUSE_BRUSHESTF)bl_ui.space_toolsystem_commonr   
space_datatypebpytypesBrushbl_rna
propertiesbrush_type_prop
enum_items_tool_class_from_space_type_tools_flattentools_from_contextr   idnameoptions
brush_typevalue)r   r   r5   r   
space_typebrush_type_itemstool_helper_clsitems           r   has_tool_with_brush_type(BrushAssetShelf.has_tool_with_brush_type    s    G'',,
99??11<<S=P=PQ\\/KKJW)882272N
D |{{   ||#T\\(I*#OO4::jH%
( r   c                    SSK Jn  UR                  U5      nU(       d  gU R                  (       d  gUR                  R                  U R                  5      nUc  gUR                  S:X  a  U R                  X5      (       + $ [        R                  R                  R                  R                  U R                     R                  nXdR                     R                  U:H  $ )Nr   r   TFANY)r&   r   tool_active_from_contextr.   metadatagetr5   r;   r)   r*   r+   r,   r-   r/   r6   )r   r   assetr   toolasset_brush_typer8   s          r   brush_type_pollBrushAssetShelf.brush_type_poll>   s    G$==gF"" >>--c.A.AB # ??e#33GNNN99??11<<S=P=PQ\\066:JJJr   c                    UR                   S:w  a  gU R                  (       a,  UR                  R                  U R                  S5      (       d  g[        R
                  nUR                  nUR                  =(       a    UR                  R                  S:H  nU(       a,  UR                  R                  (       a  U R                  X!5      $ g)NBRUSHFASSET_SHELFT)id_type	mode_propr@   rA   r)   r   preferencesregionr(   viewuse_filter_brushes_by_toolrE   )r   rB   r   prefsis_asset_shelf_regions        r   
asset_pollBrushAssetShelf.asset_pollV   s    ==G#==!3!3CMM5!I!I++## ' W7>>3F3F-3W !UZZ%J%J&&w66r   c                     SSK Jn  UR                  [        R                  5      nU(       a  UR
                  (       d  g [        R                  [        R                  5      nU(       a  UR                  $ S $ )Nr   r   )	r&   r   r?   r)   r   use_brushesUnifiedPaintPanelpaint_settingsbrush_asset_reference)r   r   rC   rW   s       r   get_active_asset BrushAssetShelf.get_active_asseth   sQ     	H$==ckkJ4++*99#++F7E~33O4Or   c                 *    AAUR                  S5        g )NVIEW3D_MT_brush_context_menu)menu_contents)selfr   rB   layouts       r   draw_context_menu!BrushAssetShelf.draw_context_menus   s    U 	;<r   c                 ^    SSSSSSSSS	S
S.
n[         R                  U 5      nU(       d  g X   $ )NVIEW3D_AST_brush_sculptVIEW3D_AST_brush_vertex_paintVIEW3D_AST_brush_weight_paintVIEW3D_AST_brush_texture_paintIMAGE_AST_brush_paintVIEW3D_AST_brush_gpencil_paintVIEW3D_AST_brush_gpencil_sculptVIEW3D_AST_brush_gpencil_weightVIEW3D_AST_brush_gpencil_vertexVIEW3D_AST_brush_sculpt_curves)
SCULPTPAINT_VERTEXPAINT_WEIGHTPAINT_TEXTUREPAINT_2DPAINT_GREASE_PENCILSCULPT_GREASE_PENCILWEIGHT_GREASE_PENCILVERTEX_GREASE_PENCILSCULPT_CURVES)rV   get_brush_mode)r   mode_mapr   s      r   get_shelf_name_from_context+BrushAssetShelf.get_shelf_name_from_context{   sI     0;;=/#C$E$E$E=
 !//8~r   c                 F   U(       a'  UR                   (       a  UR                   R                  OSn[        R                  U5      nU(       d  g U(       a  U(       a  UR                  OS nU(       a  UR
                  (       a  SU-   nU R                  UUU(       d  SOSUS9  g )Nr   z* 
BRUSH_DATANONE)nameicon
icon_value)previewicon_idr	   ry   r~   has_unsaved_changestemplate_asset_shelf_popover)r_   r   brush	show_namepreview_icon_id
shelf_namedisplay_names          r   draw_popup_selector#BrushAssetShelf.draw_popup_selector   sy    38U]]%--//PQ$@@I
&+	uzzE55,.L++%4&&	 	, 	
r    T)__name__
__module____qualname____firstlineno__
bl_optionsbl_activate_operatorfilter_brushr.   rK   classmethodr   r;   rE   rR   rY   r`   staticmethodry   r   __static_attributes__r   r   r   r	   r	      s    J 5LOI\ \  : K K.  " P P = =  & 
 
r   r	   c                   :    \ rS rSrSrSrSrSr\S 5       r	S r
Srg	)
"VIEW3D_PT_brush_asset_shelf_filter   VIEW_3DHEADERFilterASSETSHELF_PT_displayc                 v    UR                   c  gUR                   R                  [        R                  U5      :H  $ )NF)asset_shelf	bl_idnamer	   ry   r   r   s     r   r   'VIEW3D_PT_brush_asset_shelf_filter.poll   s4    &"",,0[0[\c0dddr   c                 j    U R                   nUR                  nUR                  UR                  SSS9  g )NrO   zBy Active Tooltext)r_   rL   proprN   )r^   r   r_   rP   s       r   draw'VIEW3D_PT_brush_asset_shelf_filter.draw   s.    ##EJJ <CSTr   r   N)r   r   r   r   bl_space_typebl_region_typebl_labelbl_parent_idr   r   r   r   r   r   r   r   r      s0    MNH*Le e
Ur   r   c                       \ rS rSr\S 5       r\S 5       r\      SS j5       r\S 5       r\SS.S j5       r	\SS	 j5       r
S
rg)rV      c                 4   U R                   nUS:X  a  gSSKJn  UR                  U 5      nU(       d  gUR                  (       d  gU R
                  nU R                  nU(       a5  UR                  nUS:X  a  gUS;   a  US:X  a  UR                  (       a  U$ gU$ g)	zuGet the correct mode for this context. For any context where this returns None,
no brush options should be displayed.PARTICLENr   r   IMAGE_EDITORrq   >   r   
PROPERTIESrp   )	r   r&   r   r?   rU   r'   tool_settingsr(   image_paint)r   r   r   rC   r'   r   r7   s          r   rw    UnifiedPaintPanel.get_brush_mode   s     ||:G$==gF''
--#J^+!88?*$00##r   c                    U R                   n[        R                  U 5      nUS:X  a  UR                  $ US:X  a  UR                  $ US:X  a  UR
                  $ US:X  a  UR                  $ US:X  a  UR                  $ US:X  a  UR                  $ US:X  a  UR                  $ US:X  a  UR                  $ US	:X  a  UR                  $ US
:X  a  UR                  $ US:X  a  UR                  $ g )Nrm   rn   ro   rp   r   rq   rv   rr   rs   rt   ru   )r   rV   rw   sculptvertex_paintweight_paintr   particle_editcurves_sculptgpencil_paintgpencil_sculpt_paintgpencil_weight_paintgpencil_vertex_paint)r   r   r   s      r   rW    UnifiedPaintPanel.paint_settings   s   -- //8 8 '''^# ---^# ---_$ ,,,Z ...Z ,,,_$ ...** ...++ 555++ 555++ 555r   Nc
                 :   U R                  SS9n
U(       a  UnO[        R                  U5      R                  nUnU(       a  [	        X5      (       a  UnU
R                  XSXxS9  U(       a  U	(       d  U
R                  XSSS9  U(       a  U
R                  X&SS9  U
$ )	zGeneralized way of adding brush options to the UI,
along with their pen pressure setting and global toggle, if they exist.

:param unified_paint_settings_override allows a caller to pass in a specific object for usage. Needed for
some 'brush-like' tools.Talignr}   )r   r   slider BRUSHES_ALLr   r   r   )rowrV   rW   unified_paint_settingsr   r   )r_   r   r   	prop_nameunified_paint_settings_overrideunified_namepressure_namer   r   headerr   ups
prop_owners                r   prop_unifiedUnifiedPaintPanel.prop_unified  s    $ jjtj$*1C#227;RRC
GC66JV$NHHSRmHDHHUH3
r   c                    [         R                  U5      n[        Xu5      nUR                  UUSU(       a  SOSSS9  U(       a2  U R	                  5       n	[        X45      U	l        U	R                  X6SSS9  g g )Nr   DOWNARROW_HLT
RIGHTARROWFr   r   embossTr   show_presets)rV   rW   r   r   columnactivetemplate_curve_mapping)
r_   r   
parent_rowr   r   curve_visibility_namecustom_curve_namepaint	is_activesubcols
             r   prop_custom_pressure&UnifiedPaintPanel.prop_custom_pressure'  sy     "009E9	!$-< 	 	
 ]]_F#E9FM))%$]a)b r   r   c                    [         R                  U5      R                  nUR                  (       a  UOUnU R	                  XcUS9  g )Nr   )rV   rW   r   use_unified_colorr   )parentr   r   r   r   r   r   s          r   prop_unified_color$UnifiedPaintPanel.prop_unified_colorA  s7    ..w7NN11Su
J5r   c                     [         R                  U5      R                  nUR                  (       a  UOUnU R	                  XcUS9  g )Nvalue_slider)rV   rW   r   r   template_color_picker)r   r   r   r   r   r   r   s          r   prop_unified_color_picker+UnifiedPaintPanel.prop_unified_color_pickerG  s:    ..w7NN11Su
$$Z$Vr   r   )NNNNFFr   )r   r   r   r   r   rw   rW   r   r   r   r   r   r   r   r   rV   rV      s    
 ! !F  @  -1# #J c c2 FJ 6 6
 W Wr   rV   c                   $    \ rS rSr\S 5       rSrg)
BrushPaneliO  c                 (    U R                  U5      S L$ )N)rw   r   s     r   r   BrushPanel.pollP  s    !!'*$66r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   O  s    7 7r   r   c                   $    \ rS rSrSrS rS rSrg)BrushSelectPaneliU  Brush Assetc                     U R                  U5      nUc  g UR                  nUc  g UR                  (       a  [        S5      U l        g [        S5      U l        g )NzBrush Asset (Unsaved)r   )rW   r   r   n_r   r^   r   settingsr   s       r   draw_header_preset#BrushSelectPanel.draw_header_presetY  sP     &&w/=$$67DM}-DMr   c                 @   U R                   nU R                  U5      nUc  g UR                  nUR                  5       nUR	                  SS9n[
        R                  XaUSS9  U(       a  UR                  USSS9  Uc  g UR	                  5       nUR                  SS	SS
9  g )NTr   F)r   r~   r   r   r\   r   )r   r   )	r_   rW   r   r   r   r	   r   r   menu)r^   r   r_   r   r   r   cols          r   r   BrushSelectPanel.drawi  s    &&w/jjljjtj$++C%5+QHHUFH,=jjl/oBOr   )r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   U  s    H. Pr   r   c                   B   ^  \ rS rSrSrS1r\U 4S j5       rS rSr	U =r
$ )ColorPalettePaneli  zColor PaletteDEFAULT_CLOSEDc                   > [         TU ]  U5      (       d  gU R                  U5      nUR                  =nc  gUR                  R
                  S:X  d  UR                  (       a  UR                  nUR                  $ UR                  (       a  UR                  nUR                  $ UR                  (       a  UR                  nUR                  $ g)NFr   )superr   rW   r   r'   r(   image_paint_objectimage_paint_capabilities	has_colorvertex_paint_objectvertex_paint_capabilitiessculpt_objectsculpt_capabilities)r   r   r   r   capabilities	__class__s        r   r   ColorPalettePanel.poll  s    w|G$$%%g.^^#E,""n48R8R 99L)))(( ::L)))"" 44L)))r   c                     U R                   nU R                  U5      nUR                  USSS9  UR                  (       a  UR	                  USSS9  g g )Npalettezpalette.newnewT)color)r_   rW   template_IDr  template_palette)r^   r   r_   r   s       r   r   ColorPalettePanel.draw  sS    &&w/8YMB##Hit#D r   r   r   r   r   r   r   r   r   r   r   r   __classcell__r  s   @r   r  r    s.    H"#J *E Er   r  c                   H   ^  \ rS rSrSrS1r\U 4S j5       rS rS r	Sr
U =r$ )
ClonePaneli  Cloner  c                    > [         TU ]  U5      (       d  gU R                  U5      nU R                  U5      nUS:X  a  UR                  nUR
                  S:H  $ g)NFrp   CLONE)r  r   rW   rw   r   image_brush_type)r   r   r   r   r   r  s        r   r   ClonePanel.poll  sZ    w|G$$%%g.!!'*?"NNE))W44r   c                 \    U R                  U5      nU R                  R                  USSS9  g )Nuse_clone_layerr   r   )rW   r_   r   r^   r   r   s      r   draw_headerClonePanel.draw_header  s,    &&w/#42>r   c           
         U R                   nU R                  U5      nUR                  Ul        UR                  nUR                  5       nUR                  S:X  av  [        UR                  5      S:  a$  UR                  SS9  UR                  SSUSUSS	S
9  UR                  nU(       a%  UR                  SS9  UR                  SSUSUSS	S
9  g g UR                  S:X  aw  UR                  nUR                  (       a  UR                  R                  OSnUR                  SS9  UR                  US5        UR                  SS9  UR!                  SUSS9  g g )NMATERIAL   	Materialsr   MATERIAL_UL_matslotsr   material_slotsactive_material_index   )rowszSource Clone SlotTEXTURE_UL_texpaintslotstexture_paint_slotspaint_clone_slotIMAGEzSource Clone Imageclone_imagezSource Clone UV Map"VIEW3D_MT_tools_projectpaint_cloneFr   	translate)r_   rW   r$  r   active_objectr   r   lenr-  labeltemplate_listactive_materialdatauv_layer_cloner~   r  r   )	r^   r   r_   r   r   r   matmesh
clone_texts	            r   r   ClonePanel.draw  sT   &&w/ 00""mmo==J&2$$%)		{	+!!*B(/	 "  $$C		2	3!!..+	 "   ]]g%77D595H5H,,11bJII/I0OOHm4II0I1HH9
V[H\ &r   r   r   r   r   r   r   r   r   r   r&  r   r   r  r  s   @r   r  r    s3    H"#J
 
?$] $]r   r  c                   $    \ rS rSrSrS1rS rSrg)TextureMaskPaneli  zTexture Maskr  c                    U R                   nSUl        SUl        UR                  R                  R
                  nUR                  nUR                  5       nUR                  USSSSS9  UR                  5       R                  USS	S
9  UR                  S:X  aW  UR                  (       a0  UR                  R                  S:X  a  SUR                  S5      l        SUR                  S5      l        UR                  5       nUR                  USSS
9  UR                   (       a  UR                  5       nUR                  USSS
9  UR"                  (       ap  UR                  USSS
9  UR$                  R&                  (       aD  UR&                  (       a3  UR                  USSS
9  UR(                  (       a  UR                  USSS
9  UR                  US5        UR                  US5        g )NTFtextureztexture.new      )r  r0  colsmask_map_modeMask Mappingr   STENCILr4  brush.stencil_fit_image_aspectbrush.stencil_reset_transformuse_pressure_maskingPressure MaskingangleAngleuse_rakeRake
use_randomRandomrandom_angleRandom Angleoffsetscale)r_   use_property_splituse_property_decorater   r   r   mask_texture_slotr   template_ID_previewr   r   map_modemask_texturer(   operatormaskhas_texture_anglehas_texture_angle_sourcebrush_capabilitieshas_random_texture_anglerW  )r^   r   r_   r   mask_tex_slotr   s         r   r   TextureMaskPanel.draw  s   $(!',$%%1177//mmoymRSZ[\ 	

-~N!!Y.!!e&8&8&=&=&HIM @AFDHFOO;<Ammo.5GH**--/CHH]G'H:55
@++DDIoIoHH]LxHH$//^T 	)(r   r   N)r   r   r   r   r   r   r   r   r   r   r   rF  rF    s    H"#J#)r   rF  c                   (    \ rS rSrSrS1rSrS rSrg)StrokePaneli  Stroker     c           	      H   U R                   nSUl        SUl        U R                  U5      nU R	                  U5      nUR
                  nUR                  5       nUR                  US5        UR                  5         UR                  S:X  a  UR                  USSS9  UR                  S:X  a  UR                  US	S
SS9  UR                  S:X  a2  UR                  SS9nUR                  USSS9  UR                  USSSS9  UR                  S;   a   UR                  SS9nUR                  USSS9  US:X  a   UR                  5       R                  USSSS9  US;   aH  UR                  R                  (       d  UR                  R                  (       a  UR                  US5        UR                  S:X  aB  UR                  5         UR                  USSS9  UR                  S5        UR                  5         UR                  S;   aA  UR                  5         UR                  SS9nUR                  US S!S9  UR                  US"S#S9  US:X  a  UR                  R                   (       d  US:w  Ga  UR                  5         UR                  SS9nUR"                  S$:X  a  UR                  US%SS&9  OUR                  US'5        UR                  US(SSS9  U R$                  SL a&  UR                  US)UR&                  (       a  S*OS+SSS,9  UR&                  (       aB  U R$                  SL a3  UR                  5       nUR(                  Ul        UR-                  US-SSS.9  UR                  5       R                  US/SS09  UR                  5         [.        R1                  UUUS1S2SS39  g )4NTFstroke_methodANCHOREDuse_edge_to_edgezEdge to Edger   AIRBRUSHrateRater   r   SPACEr   spacingSpacinguse_pressure_spacingr   )toggler   >   LINECURVErm   use_scene_spacingzSpacing Distancer   expand>   rm   rq   rp   use_space_attenuationr}  paint_curvezpaintcurve.newr  zpaintcurve.draw>   r|  r}  rw  
dash_ratioz
Dash Ratiodash_sampleszDash LengthrH   jitterr   jitter_absoluteuse_pressure_jittershow_jitter_curver   r   r   r   r   curve_jitterr   jitter_unitr  input_samplesuse_unified_input_samplesr   r   )r_   r]  r^  rw   rW   r   r   r   	separatorrp  r   r  has_space_attenuationr  r  rc  
has_jitterr  
is_popoverr  r  r   r   rV   r   )	r^   r   r_   r   r   r   r   r   r   s	            r   r   StrokePanel.draw  sB   $(!',$""7+&&w/mmo(*,HHU.^HD*,HHUFH=')'''%CHHUIIH6HHU24bHI"33'''%CHHUIIH68GGINN5"5<NW[N\::--CCuG`G`GvGv 78')MMOOOE=6FOGLL*+MMO"<<MMO'''%CHHUL|H<HHUNH?H!:!:!E!E$RZJZMMO'''%C  G+6 12HHU1$RHH%'',4,F,FL    ))doo.F % 9 9--e^4^b-cGGINN5-N=&&4 	' 	
r   r   N)	r   r   r   r   r   r   bl_ui_units_xr   r   r   r   r   rl  rl    s    H"#JMO
r   rl  c                   H   ^  \ rS rSrSrS1r\U 4S j5       rS rS r	Sr
U =r$ )SmoothStrokePaneli_  zStabilize Stroker  c                    > [         TU ]  U5      (       d  gU R                  U5      nUR                  nUR                  R
                  (       a  gg)NFT)r  r   rW   r   rg  has_smooth_stroker   r   r   r   r  s       r   r   SmoothStrokePanel.pollc  sC    w|G$$%%g.##55r   c                     U R                  U5      nUR                  nSU R                  l        U R                  R	                  USU R
                  (       a  U R                  OSS9  g )NFuse_smooth_stroker   r   )rW   r   r_   r]  r   r  r   r   s       r   r&  SmoothStrokePanel.draw_headerm  sN    &&w/).& 34??$--`bcr   c                     U R                   nSUl        SUl        U R                  U5      nUR                  nUR                  5       nUR                  Ul        UR                  USSSS9  UR                  USSSS9  g )NTFsmooth_stroke_radiusRadiusrv  smooth_stroke_factorFactor)	r_   r]  r^  rW   r   r   r  r   r   )r^   r   r_   r   r   r   s         r   r   SmoothStrokePanel.drawt  sv    $(!',$&&w/mmo,,
.XdK.XdKr   r   rD  r  s   @r   r  r  _  s4    !H"#J dL Lr   r  c                   B   ^  \ rS rSrSrS1r\U 4S j5       rS rSr	U =r
$ )FalloffPaneli  Falloffr  c                   > [         TU ]  U5      (       d  gU R                  U5      nU(       a,  UR                  (       a  UR                  R                  (       d  gU R                  U5      S:X  a  UR                  nUR                  S;   a  gg)NFrv   >   ADDDELETET)r  r   rW   r   curve_distance_falloffrw   curves_sculpt_brush_typer  s       r   r   FalloffPanel.poll  sn    w|G$$%%g.X^^0U0Ug&/9NNE--1BBr   c                    U R                   nU R                  U5      nU R                  U5      nUR                  nUc  g UR	                  SS9nUR
                  R                  S:X  a  UR                  USSS9  O UR                  SS9nUR                  USSS9  UR                  S:X  a1  UR                  US	SSSS
9  UR	                  SS9nUR                  SS9nSnUS;   a  UR                  S:w  a  SnU(       d"  US:X  a  UR                  R                  S:X  a  SnU(       a?  UR                  5         UR                  SS9nSUl        SUl        UR                  USSS9  g g )NTr   TOOL_HEADERcurve_distance_falloff_presetr  r   r   CUSTOMr  )r   use_negative_sloper   F>   rm   rn   ro   POSErv   r   falloff_shape)r_   rW   rw   r   r   rM   r(   r   r   r  r   sculpt_brush_typer'   r  r]  r^  )	r^   r   r_   r   r   r   r   r   show_falloff_shapes	            r   r   FalloffPanel.draw  sp   &&w/""7+=mm$m'>>-/HHU;DHI'''%CHHU;"HE..(:))/#'!	 *  --d-+C'''%C"==%BYBY]cBc!%!do&='BTBTBYBY]iBi!%MMO'''%C%)C"(-C%HHUODH9 r   r   r  r  s   @r   r  r    s,    H"#J
 
%: %:r   r  c                   *    \ rS rSrSrS1rS rS rSrg)DisplayPaneli  zBrush Cursorr  c                     U R                  U5      nU(       a.  U R                  (       d  U R                  R                  USSS9  g g g )N
show_brushr   r   )rW   r  r_   r   r%  s      r   r&  DisplayPanel.draw_header  s;    &&w/DOOKKX|"= ,8r   c                    U R                   nSUl        SUl        U R                  U5      nU R	                  U5      nUR
                  nUR                  nUR                  nU R                  (       a'  UR                  SS9nSUl        UR                  USSS9  UR                  5       n	UR                  U	l        U	R                  USSS9  US	:X  a,  UR                  R                  (       a  U	R                  US
SS9  U	R!                  5         U	R                  SS9nUR                  Ul        UR                  USSS9  UR                  USSSSS9  UR                  USSSUR"                  (       a  SOSS9  UR$                  R&                  =(       a    UR                  n
US;   ao  U	R                  SS9nXl        UR                  USSS9  UR                  USSSSS9  UR(                  S:w  a&  UR                  USSSUR*                  (       a  SOSS9  US;   aq  U	R                  SS9nXl        UR                  USSS9  UR                  USSSSS9  UR(                  S:w  a'  UR                  US SSUR,                  (       a  SOSS9  g g g )!NTFr   r  zDisplay Cursorr   cursor_color_addzCursor Colorrm   cursor_color_subtractzInverse Colorcursor_overlay_alphazFalloff Opacityuse_cursor_overlay_overrider   r|   )r{  r   r   use_cursor_overlayHIDE_OFFHIDE_ON)r   r{  r   >   rm   rq   rn   rp   texture_overlay_alphazTexture Opacityuse_primary_overlay_overriderN  use_primary_overlay   rq   rp   mask_overlay_alphazMask Texture Opacityuse_secondary_overlay_overrideuse_secondary_overlay)r_   r]  r^  rw   rW   r   texture_slotr_  r  r   r   r   r  r   r  has_secondary_colorr  r  rg  has_overlayra  r  r  )r^   r   r_   r   r   r   tex_slottex_slot_maskr   r   texture_overlay_settings_actives              r   r   DisplayPanel.draw  s   $(!',$""7+&&w/%%//??**4*(C%*C"HHX|2BHCmmo((
*@8 9 9 M MHHU3/HJggDg!((
.5FG5dR^_'b$77Y 	 	
 +0*B*B*N*N*fS[SfSf'JJ'''%C8JHHU3:KHLHHU:4bWcHd  I-0r$','@'@i  
 00'''%C8JHHU07MHNHHU<TPRYeHf%%22D','B'B	   3 1r   r   N)	r   r   r   r   r   r   r&  r   r   r   r   r   r  r    s    H"#J>
9r   r  c                       \ rS rSrSrS rSrg)r6  i   zClone Layerc                     U R                   n[        UR                  R                  R                  5       H-  u  p4UR                  SUR                  SS9nSUl        X5l        M/     g )Nzwm.context_set_intFr7  z'active_object.data.uv_layer_clone_index)	r_   	enumerater9  r>  	uv_layersrc  r~   	data_pathr6   )r^   r   r_   iuv_layerpropss         r   r   'VIEW3D_MT_tools_projectpaint_clone.draw  sU    $W%:%:%?%?%I%IJKAOO$8x}}X]O^EGEOK Kr   r   N)r   r   r   r   r   r   r   r   r   r   r6  r6     s    Hr   r6  Fc           	         [         R                  U5      n[        XX#5        US:X  Ga(  UR                  nUR                  nUR
                  (       a  U R                  USSS9  UR                  (       a  U R                  USSS9  U R                  SS9nUR                  (       aD  UR                  USSS9  UR                  (       a"  UR                  USS	S
9  UR                  USS	S
9  UR                  (       a-  UR                  (       a  SOSn[         R                  U UUSUSS9  UR                  (       a,  UR                  R                   (       a  U R                  USSS9  UR"                  (       a  U R                  USSS9  UR$                  (       a/  ['        S5      n	US;   a  ['        S5      n	U R                  USSU	SS9  UR(                  (       a  U R                  USSS9  UR*                  (       a  U R-                  5         [         R                  U UUSSSS9  US:w  aS  U R                  SS9nUR                  USS	S
9  UR                  5       n
UR.                  U
l        U
R                  USSS	S 9  U R-                  5         UR2                  (       a  U R                  US!SS"S 9  UR4                  (       a  U R                  US#SS"S 9  UR6                  (       a  U R                  US$SS%S 9  UR8                  (       a  U R-                  5         U R;                  5       nUR                  (       a"  UR                  R                   (       a  SUl        UR                  US&5        UR?                  S'5        U R-                  5         UR@                  (       a  [         RC                  U5      RD                  nU R                  SS9n[         RG                  XqUS(S	S
9  [         RG                  XqUS)S	S
9  UR-                  5         UR?                  S*S+S	SS,9  UR                  US-S	S.S/9  U R                  US0S1S
9  US2:X  aE  U R                  5       nUR                  US35        U R                  5       nUR                  US45        gUS5:X  aD  U R-                  5         U R                  US65        U R                  US7SS9  U R-                  5         gUS8:X  a3  U R-                  5         U R                  US95        U R-                  5         gUS::X  Ga  U R-                  5         U R                  US;5        U R-                  5         U R                  US<5        U R                  US=5        U R                  US>5        U R                  US?5        URH                  S@:X  a"  URJ                  SA;   a  U R                  USB5        URH                  SC:X  a  U R                  USD5        U R                  USE5        U R                  USF5        U R                  USG5        U R-                  5         gUSH:X  Ga%  U R-                  5         U R                  USI5        URL                  SJ:w  a$  U R                  USK5        U R                  USL5        URL                  SM:X  a  U R                  USN5        U R-                  5         U R                  USO5        U R                  USP5        U R-                  5         U R                  USQ5        U R                  USR5        U R                  USS5        U R-                  5         U R                  UST5        U R-                  5         gUS:X  a  U R                  SS9nUR                  USU5        UR                  USVS	S
9  U R-                  5         U R                  USW5        U R-                  5         U R                  USX5        U R                  USY5        gUSZ:X  a%  U R                  US[5        U R                  US\5        gUS]:X  Gar  U R                  SS9nUR                  US^5        UR                  US_S	S
9  UR                  US`S	S
9  U R                  SS9nUR                  USa5        UR                  USbS	S
9  UR                  UScS	S
9  U R                  SS9nUR                  USd5        UR                  USeS	S
9  UR                  USfS	S
9  U R                  SS9nUR                  USg5        U R                  SS9nUR                  USh5        UR                  USiS	S
9  UR                  USjS	S
9  U R                  5       nUR                  US35        U R                  5       nUR                  US45        gUSk:X  a#  U R;                  5       nUR                  USl5        gUSm:X  ai  U R                  US;5        U R-                  5         U R;                  5       nUR                  USn5        UR                  USo5        UR                  USp5        gUSq:X  a#  U R;                  5       nUR                  USr5        gUSs:X  aG  U R;                  5       nUR                  USt5        UR                  USu5        UR                  USv5        gUSw:X  aj  U R;                  5       nUR                  USx5        URN                  Sy:X  a7  UR                  USz5        UR                  US{5        UR                  US|5        ggUS}:X  a#  U R;                  5       nUR                  USl5        gUS~:X  a   U R                  5       R                  USSS9  ggUS;   ax  URP                  nURR                  S:X  a[  URT                  S:X  a  US:X  a  U R                  USSSS9  ggURT                  S:X  a   U R                  5       R                  USSS9  gggUS:X  Gan  URV                  S:X  Gay  U R                  URX                  S5        U R;                  SSS9nUR                  URX                  SSS
9  UR                  URX                  SSS
9  UR                  URX                  SSS
9  UR                  URX                  SSS
9  U R;                  5       nURX                  RZ                  (       + Ul        UR                  URX                  SSS
9  U R;                  5       nURX                  R\                  (       + Ul        UR                  URX                  SSS
9  U R;                  5       nURX                  R^                  (       + Ul        UR                  URX                  SSS
9  URV                  S:X  Ga  U R;                  5       nUR                  URX                  SSS
9  U R;                  SSS9nUR                  URX                  SSS
9  UR                  URX                  SSS
9  UR                  URX                  SSS
9  UR                  URX                  SSS
9  U R;                  5       nURX                  RZ                  (       + Ul        UR                  URX                  SSS
9  U R;                  5       nURX                  R\                  (       + Ul        UR                  URX                  SSS
9  U R;                  5       nURX                  R^                  (       + Ul        UR                  URX                  SSS
9  gURV                  S:X  a9  U R                  URX                  S5        U R                  URX                  S5        ggg)zsDraw simple brush settings for Sculpt,
Texture/Vertex/Weight Paint modes, or skip certain settings for the popover rm   normal_radius_factorTr  tilt_strength_factorr   hardnessinvert_hardness_pressurer   r   use_hardness_pressureuse_inverse_smooth_pressureNauto_smooth_factor)r   r   topology_rake_factornormal_weightPinch>   BLOB
SNAKE_HOOKMagnifycrease_pinch_factorF)r   r   r8  rake_factorplane_offsetuse_offset_pressurePLANEz
Plane Trim)headinguse_plane_trim
plane_trimr   r   heightHeightplane_heightplane_depthDepthuse_persistentzsculpt.set_persistent_baser  secondary_colorpaint.brush_colors_flipFILE_REFRESHr  r   r   r   blendz
Blend ModeCLAY_STRIPStip_roundnesstip_scale_xELASTIC_DEFORMelastic_deform_type"elastic_deform_volume_preservationr  snake_hook_deform_typer  deform_targetpose_deform_typepose_origin_typepose_offsetpose_smooth_iterationsROTATE_TWIST>   TOPOLOGY	FACE_SETSpose_ik_segmentsSCALE_TRANSLATEuse_pose_lock_rotationuse_pose_ik_anchoreduse_connected_onlydisconnected_distance_maxCLOTHcloth_simulation_area_typeGLOBALcloth_sim_limitcloth_sim_falloffLOCAL!use_cloth_pin_simulation_boundarycloth_deform_typecloth_force_falloff_type
cloth_masscloth_damping"cloth_constraint_softbody_strengthuse_cloth_collisionarea_radius_factoruse_pressure_area_radiusplane_inversion_modestabilize_normalstabilize_planeGRABuse_grab_active_vertexuse_grab_silhouettePAINTflowinvert_flow_pressureuse_flow_pressurewet_mixinvert_wet_mix_pressureuse_wet_mix_pressurewet_persistenceinvert_wet_persistence_pressureuse_wet_persistence_pressurewet_paint_radius_factordensityinvert_density_pressureuse_density_pressureSMEARsmear_deform_typeBOUNDARYboundary_deform_typeboundary_falloff_typeboundary_offsetr  slide_deform_typeMULTIPLANE_SCRAPEmultiplane_scrape_angleuse_multiplane_scrape_dynamic%show_multiplane_scrape_planes_previewSMOOTHsmooth_deform_typeSURFACE!surface_smooth_shape_preservationsurface_smooth_current_vertexsurface_smooth_iterationsDISPLACEMENT_SMEARMASK	mask_toolr  r  FILLCOLORrq   fill_thresholdzFill Thresholdrv  GRADIENTgradient_fill_moderv   r  
add_amountInterpolater  r   use_length_interpolateLengthuse_radius_interpolater  use_shape_interpolateShapeuse_point_count_interpolatezPoint Countcurve_lengthcurve_radiuspoints_per_curvePointsDENSITYdensity_add_attemptsz	Count MaxGROW_SHRINKuse_uniform_scaleminimum_length)0rV   rw   brush_shared_settingsr  r  has_normal_radiusr   has_tiltr   has_hardnesshas_hardness_pressurehas_auto_smoothhas_auto_smooth_pressurer   has_topology_raker  use_dynamic_topology_sculptinghas_normal_weighthas_pinch_factoriface_has_rake_factorhas_plane_offsetr  r  r   
has_heighthas_plane_heighthas_plane_depthhas_persistencer   enabledrc  r	  rW   r   r   r  r  r  rB  r  r!  
color_typer  curves_sculpt_settingsrR  rT  rW  )r_   r   r   popoverr   r  r  r   r   r   subr   r   s                r   brush_settingsrx    sf    ++G4D &5: x00!33 ))KK5dKC  KK5dKCjjtj$$$HHUJtH411 :D 7bA ''=I=b=b9hlM**$+ +  ..%%DDKK5dKC ))KKtK< (('?D $::i(KK4TX]K^ ''KK}TK: ((**3 +  !G+jjj6 0r:ggi"11
TC ""KKx8KD((KK~dKJ''KK}TKH ''--/C$$)>)>)])]#HHU,-LL56!!#227;RRC**4*(C00ugTV0W00uFW^`0aMMOLL2bY^L_HHS-B]HKKKw\K: -**,CHHUO,**,CHHUM*"22KK45KKCDKQ,.KK78&(KK/KK12KK12KK}-KK78%%7E<R<RVo<oE#56%%)::E#;<KK56KK34KK:;')KK;<//8;E#45E#67//7:E#FGKK23KK9:KK|,KK/KKCDKK45')**4*(CHHU01HHU6RH@KK56KK12KK01&(KK78KK45')**4*(CHHUF#HHU2H<HHU/bH9**4*(CHHUI&HHU5BH?HHU2H<**4*(CHHU-.HHU=BHGHHU:HD**4*(CHHU56**4*(CHHUI&HHU5BH?HHU2H<**,CHHUO,**,CHHUM*')--/CHHU/0*,KK/--/CHHU23HHU34HHU-.*,--/CHHU/0"55--/CHHU56HHU;<HHUCD(*--/CHHU01''94 CD ?@ ;< 5
 "66--/CHHU/0&(JJLe[> ) 
.	.55!!V+7*:%KK'7>NW[K\ &!!Z/

!!%)=d!K 0 , 
	 ))U2KK44lC--T-BCHHU113KRZH[HHU113KRZH[HHU113JQXHYHHU113PWdHe--/C"99PPPCJHHU11>HQ--/C"99PPPCJHHU11>HQ--/C"99UUUCJHHU113EHHU))Y6--/CHHU113IP[H\--T-BCHHU113KRZH[HHU113KRZH[HHU113JQXHYHHU113PWdHe--/C"99PPPCJHHU11>HQ--/C"99PPPCJHHU11>HQ--/C"99UUUCJHHU113EHHU++}<KK446IJKK446FG =U 
!r   c                    [         R                  U5      nSnSnSnSnSn	Sn
SnSnSnUS;   a8  U(       d1  UR                  R                  nUR                  R                  nS=pSnUS:X  aO  SnU(       dF  SnSn	UR
                  R                  n
UR
                  R                  nUR
                  R                  nUS:X  a  U(       d
  SnSnSn	Sn
SnUS:X  a6  U(       d  SnUR                  R                  nS=pSnUR                  S:X  a  SnUS:X  a  UR                  nSnUS	;  n	US
;   nUS;  n
SnUS:X  a  SnSnSn	US:X  a  SnSn	Sn[         R                  U5      R                  nU(       a!  U R                  USSS9  U R!                  5         U(       a  [         R#                  U UUSSSS9  UR$                  (       a  UOUnSnU(       a  UR&                  S:X  a  SnU(       d  U(       a  U(       aR  U(       a  SOSn[         R#                  U UUUSUSSS9nU(       d&  U(       a  US;   a  [         R)                  U UUUUSSS9  U(       a/  U R+                  5       R                  US SS!9  U R!                  5         U	(       aa  U
(       a  S"OSn[         R#                  U UUS#S$USS%9nU(       d&  U
(       a  US;   a  [         R)                  U UUUUS&S'S9  U R!                  5         U(       a   U R+                  5       R                  US(SS!9  gg))zJDraw simple brush settings that are shared between different paint modes. Fr  Trm   rn   ro   DRAWrv   >   r  r  >   r^  SELECTION_PAINT>   r  SLIDEr  rr   rs   r  Blendr   weightuse_unified_weightr  sizeSCENEunprojected_sizeuse_pressure_sizeNuse_unified_sizeSize)r   r   r   r   >   rm   rq   rn   ro   rp   rv   show_size_curve
curve_size)r   r   r   use_locked_sizer  use_pressure_strengthstrengthuse_unified_strength)r   r   r   show_strength_curvecurve_strength	direction)rV   rw   r  r	  
has_radiusr  has_strength_pressurehas_directionhas_size_pressureweight_paint_capabilities
has_weightweight_brush_typer  rW   r   r   r  r   r  r  r   r   )r_   r   r   rv  r   
blend_moder  	size_modesize_pressurer  strength_pressurer~  r  rC   r   
size_owner	size_propr   unified_rows                      r   ra  ra  G  s    ++G4D JDIMHMFI ,,77AAJ11<<D+//H M x	DH % 9 9 O O11??I!55GGM ~JDH $ M ~D44??F+//H M""f,J --00>>	 (BB $$	 %% 
*
*7
3
J
JCE71&&- 	' 	
 ,,%JIj00G;&	y3@/dM+88/+ 9 	K } :% 2% "66"/*;&2 7  JJLj*;DI3D/$'44/' 5 
 , :! 2! 22+&;"2 3  	

%T: r   c                    [         R                  U5      n[         R                  U5      R                  nUS:H  =(       a    UR                  R
                  nUS;   d  U(       Ga~  UR                  (       a  UOUnSU l        U R                  SSS9u  pxUR                  USSS	9  U(       Ga6  SUl        SUl
        UR                  SS
9n	SU	l        U	R                  SS
9n
UR                  U
l        U
R                  USSSS9  U
R                  USSSS9  U
R                  USSSS9  U	R                  SS
9n
UR                  U
l        U
R                  USSSS9  U
R                  USSSS9  U
R                  USSSS9  U	R                  SS
9n
UR                  U
l        U
R                  USSS[        R                   S9  U
R                  USSSS9  U
R                  USSSS9  g g g )Nrm   >   rq   rn   rp   Fcolor_jitter_panelTdefault_closeduse_color_jitterzRandomize Colorr   r   
hue_jitterHuer  use_stroke_random_huer   GP_SELECT_STROKESr   use_random_press_hueSTYLUS_PRESSUREsaturation_jitter
Saturationuse_stroke_random_satuse_random_press_satvalue_jitterValue)r   r   	text_ctxtuse_stroke_random_valuse_random_press_val)rV   rw   rW   r   r  r	  r   r]  panelr   r^  r   r   r  rs  i18n_contextsr  )r_   r   r   r   r   is_sculpt_paint_moder   r   r  r   r   s              r   r  r    s   ++G4D

*
*7
3
J
JC8+S0I0I0S0S<<@T11Su
$)!%9$OJ 29JK'+E$*/E',,T,*C%)C"'''%C$55CKHHZdHGHHZ!8rH[H\HHZ!7bGXHY'''%C$55CKHHZ!4THUHHZ!8rH[H\HHZ!7bGXHY'''%C$55CKHHZ7VcViViHjHHZ!8rH[H\HHZ!7bGXHY/  AUr   c                    [         R                  U5      nU(       a*  [        XUSS9  U R                  5         U R	                  SS9  SnSnUS:X  Ga#  U R                  US5        U R                  5         UR                  nUR                  nSnU R                  SSS	9n	U	R                  US
SS9  U	R                  USSS9  U R                  5         U R                  SS9n	U	R                  5       n
U
R                  USSS9  UR                  (       a  U
R                  SSS9nSUl        SUl        U	R                  5       n
U
R                  USSS9  UR                  (       a  U
R                  SSS9nSUl        SUl        UR                  (       d  UR                  (       aH  U R                  5       n	SU	l        U	R!                  SS9nUR                  5       n	UR                  US5        U R                  5         U R                  SS9n	U	R                  5       n
U
R                  USSS9  UR"                  =(       d    UR$                  nU(       a  U
R                  SSS9nSUl        U	R                  USSS9  U(       at  U R                  SS9n	U	R                  US S!S9  U	R                  US"S#S9  U R                  5       n	U	R                  US$S%S9  UR&                  (       a  U	R)                  US&SS'9  U R                  5         U R                  SS9n	U	R                  US(S)S9  UR*                  (       aX  U	R                  US*S+S9  U	R                  SS9nUR,                  (       + Ul        UR                  US,S-S9  UR                  US.S/S9  U R                  5       n	U	R                  US0S1S9  UR0                  (       a1  U R                  SS9n	U	R                  US2S-S9  U	R                  US3S/S9  U R                  5         UR2                  (       ad  U R                  US45        UR4                  S5:w  a2  U R                  S6SS	9n	U	R                  US7S8S9  U	R                  US9S:S9  U R                  5         GO`US;:X  aq  UR6                  nU R                  S<SS	9n	U	R                  US=S>S9  U	R                  US?S@[8        R:                  SA9  U	R                  USBSCS9  U	R                  USDSES9  GOUSF;   Ga>  U R                  USG5        U R                  5         UR<                  nUR                  nUSH:X  a  U R                  USI5        OU R                  USJ5        UR>                  SK:X  am  U R                  5         U R                  5       R                  USLSSM9  U R                  USN5        USH:X  a  U R                  USO5        U R                  USP5        GO UR>                  SQ:X  a  U R                  USRSSSST9  OUR>                  SU:X  a(  USH:X  a"  U R                  USVSWS9  U R                  USXSYS9  OUSZ:X  aI  U R                  US[5        U R                  5         U R                  USJ5        UR@                  S\:w  a  SnSnOUUS]:X  a7  U R                  US^5        U R                  5         URB                  S\:w  a  SnSnOUS_:X  a  U R                  US`5        U(       a  U R                  USa5        U(       a  U R                  USbScS9  U(       a  [E        XU5        U RG                  SdSSe9u  nnUR	                  SfS9  U(       a  SUl        SUl$        UR                  SS9n	U	R                  USgShS9  U	R                  USiSjS9  U	R                  USkSlS9  U	R                  USmSnS9  U	R                  USoSpS9  U	R                  USqSrS9  gsgs)tzKDraw advanced brush settings for Sculpt, Texture/Vertex/Weight Paint modes.T)rv  Advancedr   Frm   r  zAuto-MaskingrQ  use_automasking_topologyTopologyuse_automasking_face_setsz	Face Setsr   use_automasking_boundary_edgeszMesh Boundaryzsculpt.mask_from_boundaryzCreate MaskrH   MESH"use_automasking_boundary_face_setszFace Sets Boundaryr  g?factor,automasking_boundary_edges_propagation_stepsuse_automasking_cavityCavityzsculpt.mask_from_cavityuse_automasking_cavity_invertedzCavity (inverted)automasking_cavity_factorr  automasking_cavity_blur_stepsBlur#use_automasking_custom_cavity_curvezCustom Curveautomasking_cavity_curver   use_automasking_view_normalzView Normaluse_automasking_view_occlusion	Occlusionautomasking_view_normal_limitLimitautomasking_view_normal_falloffr  use_automasking_start_normalzArea Normalautomasking_start_normal_limit automasking_start_normal_falloffsculpt_planer  Originaluse_original_normalNormaluse_original_planePlaners   Affectuse_edit_positionPositionuse_edit_strengthStrength)r   r  use_edit_thickness	Thicknessuse_edit_uvUVr  r!  rq   use_paint_antialiasing	use_alphaSOFTENr  r  sharp_thresholdblur_kernel_radius	blur_moderH  r~  z
Mask Valuerv  r   r5  Imageclone_alphaAlpharn   vertex_brush_typer6  ro   r  rv   r  use_accumulateuse_frontfacezFront Faces Onlymodesr  Modesuse_paint_sculptSculptuse_paint_uv_sculptz	UV Sculptuse_paint_vertexzVertex Paintuse_paint_weightzWeight Paintuse_paint_imagezTexture Paintuse_paint_sculpt_curveszSculpt CurvesN)%rV   rw   rx  r  r;  r   r  has_accumulater   r   r  rc  settings_sourceboundary_moder  r]  splitr  r  r  r   r  r  r   r  has_sculpt_planer  gpencil_settingsr  
id_gpencilr  r!  r  r  r  r  r^  )r_   r   r   r   rv  r   r  r  r  r   r   r  r  is_cavity_activer   gp_settingsr   r  s                     r   brush_settings_advancedr    sZ    ++G4D vt<*% NMxE./00%44mmN$m?2D3+Fmm$m'ggi8O//LL!<=LQE$+E!"(Eggi<CWX33LL!<=LQE$+E!"-E//53[3[--/C%*C"IISI)E,,.CJJuLMmm$m'ggi0x@ 77`5;`;`LL!:LOE$+E!9@ST--d-+CHHU7hHGHHU;&HI--/CHHUAHW88**52LTX*Ymm$m'5MJ,,HHU<;HOZZdZ+F % D DDFMKK>WKMKK@yKQmmo6]K----d-+CHHU<7HKHHU>YHO ((KK~.&&'1mmJdmC 5HE 47C	'	',,mmHDm91
C1
mNfNfg2Em$7 
.	.E-.55%44:KK78KK{+ !!X-JJLe[>KK01z!E#78KK{+##v-KKxl4KH##w.z!Hm'BHm'B 
	E./E;'""g-!N 
	E./""g-!N 
	 E56 E+,E?1CD6E2 LLL>MFE
LLgL#' &+#lll&*:-K@*@*@)@1H r   c           
         [         R                  U 5      R                  nU(       a(  UR                  5       nSUl        UR                  USSS9  UR                  S:X  a  [         R                  XUSSS9  UR                  SS9n[         R                  XPUSS	S
9  [         R                  XPUSS	S
9  UR                  5         UR                  SSS	SS9  UR                  USS	SS9  [        XU5        gUR                  S:X  a  UR                  USSS9  SUl        UR                  5       nUR                  S:X  aN  [         R                  UU USSSSS9  UR                  USSS
9  UR                   S;   a  UR                  US5        gggg)z'Draw color wheel and gradient settings.Frt  Tr  rK  r  r   r   r   r   r  r  r  r  r   r   r   rM  gradientrz  zBackground Color)r   r   r   gradient_stroke_modezGradient Mapping>   SPACING_CLAMPSPACING_REPEATgrad_spacingN)rV   rW   r   r   r]  r   rt  r   r   r  rc  r  template_color_rampr   r!  r   r  )r   r_   r   rt  r   r   r   s          r   draw_color_settingsr    s   

*
*7
3
J
JCjjl!&T2 7"33FUGbf3gjjtj$,,S5'PR,S,,S5BSZ\,].^"UZ[)G6E2 
		Z	'""5*T"B$(!mmo!!V+**!0' +  HHU29KHL))-PP/ Q , 
(r   c                 b   UR                   nSU l        SU l        U R                  USSS9  U R	                  5         UR
                  S:X  aW  UR                  (       a0  UR                  R                  S:X  a  SU R                  S5      l	        SU R                  S	5      l	        UR                  (       a  U R                  5       nUR                  US
SS9  UR                  (       a  UR                  USSS9  UR                  R                  (       a  UR                  (       a  U(       aO  UR                  R                  (       a3  UR                  USSS9  UR                   (       a  UR                  USSS9  O3UR                  USSS9  UR                   (       a  UR                  USSS9  U R                  US5        U R                  US5        U(       aY  U R                  USSSS9  UR"                  S:X  a6  U R                  5       nUR
                  S:H  Ul        UR                  USSS9  g g g )NTFra  Mappingr   rN  r4  rO  rP  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  texture_sample_biaszSample Biasr  rz  
AREA_PLANEuse_color_as_displacementzVector Displacement)r  r]  r^  r   r  ra  rH  r(   rc  rd  re  r   rf  rg  rh  r  rW  r  r   )r_   r   r   r  r   s        r   brush_texture_settingsr    s   !!H $F#(F  KK*9K5
I%==U]]//7:EJFOO<=B@E78= !!mmo71,,HHXzH7''@@XEfEf00II<hG#..HHX~NHSHHX|(HC**>O KK(#
KK'"E0MR""f,--/C!**l:CJHHU7>SHT -	 r   c                 4   UR                   nSU l        SU l        U R                  5       R	                  USSS9  UR
                  S:X  aW  UR                  (       a0  UR                  R                  S:X  a  SU R                  S5      l	        SU R                  S	5      l	        U R                  5       nUR	                  US
SS9  UR                  (       a  U R                  5       nUR	                  USSS9  UR                  (       ap  UR	                  USSS9  UR                  R                  (       aD  UR                  (       a3  UR	                  USSS9  UR                  (       a  UR	                  USSS9  UR	                  US5        UR	                  US5        g )NTFrL  rM  r   rN  r4  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  )r_  r]  r^  r   r   ra  rb  r(   rc  rd  r   re  rf  rg  rh  rW  )r_   r   ri  r   s       r   brush_mask_texture_settingsr  4  sJ   ++M $F#(F  JJLm_>J*%"4"4"9"9W"DEIFOO<=B@D78=
--/CHHU*1CHD&&mmog611HH]JVH<''@@]EkEk8D ++HH]NHP HH]H%HH]G$r   )compactc                   UR                   nUR                  (       av  U R                  SS9nSUl        [        R                  XQUSSS9  [        R                  XQUSSS9  UR                  5         U R                  USU(       a  SO
[        S	5      S
S9  [        R                  U UUSSSSSSS9	  [        R                  U UUSSSSS9  g)zMDraw Tool Settings header for Vertex Paint and 2D and 3D Texture Paint modes.Tr      r  r   r   r  r  r}  Fr7  r  r  r  r  )r   r   r   r   r   r  r  r  )r   r   r   N)
r  r	  r   
ui_units_xrV   r   r  r   rl  r   )r_   r   r   r  r  r   s         r   brush_basic_texpaint_settingsr  U  s    11Ljjtj$,,S5'PR,S,,S5BSZ\,]E7wF7OW\]"")' # 
 ""-+ # r   c                    U R                   R                  nUR                  nUR                  nUR	                  SS9nUR
                  (       d  U R                  R                  nSnSn	U(       a  UR                  R                  5         UR                  R                  (       aN  UR                  R                  R                  nUR                  n	Sn
[        U	5      U
:  a  U	S U
S-
   S-   U	SS  -   n	UR	                  SS9nUR
                  (       + Ul        S	Ul        UR!                  S
U	SUS9  UR#                  USSS9  UR$                  S;   Ga  UR'                  SS9  UR	                  SS9nUR(                  nU(       + Ul        U(       a'  UR+                  USSSSS9  UR+                  USSSSS9  O&UR+                  USSSSS9  UR+                  USSSSS9  U(       + =(       a    UR,                  S:H  =(       d    U=(       a    UR.                  S:H  nU(       a.  UR	                  SS9nXl        SUl        UR3                  USSSS9  UR#                  USSS9  g g )NTr   r   r         z..rJ  !TOPBAR_PT_grease_pencil_materialsF)r  r   r8  r   use_material_pinr   >   rz  rJ  g      ?r  brush_draw_moder)  r   VERTEXCOLOR
VPAINT_HLT
color_modeg?r  $TOPBAR_PT_grease_pencil_vertex_color)r   r  pin_draw_mode)scener   r   materialr   r  r   r=  id_datapreview_ensurer   r   r~   r:  rs  r  rv  r   gpencil_brush_typer  r  	prop_enumr  r  scale_xprop_with_popover)r   r_   r   r  r   r   mar   r   txt_mamaxwrw  sub_rowr  show_vertex_colors                  r    brush_basic__draw_color_selectorr-  w  sU   MM//M**H			B
**4*
 C''^^++GF	


!!#::jj((00GWWFD6{T!	*T1F23K?
'''
C!222CKCNKK1	   HH[,2H6#33S!'''%#11++k+<jrXbck+<mRT[ghhjrPZ[hm"S_`"//YX5H5HM5Y MK{::mK 	 ggDg)G/O!GO%%eW2Ek%loB7) 4r   c                
   UR                   nUR                  R                  nUR                  R                  R                  UR                  SS9nUc  g UR                  S;   nUR                  n	U	S;   d  U(       Gaf  Sn
UR                  S:X  a  U	S:X  d  U(       a  Sn
U R                  S	S
9nUR                  X*S	SS9  UR                  USSS9  U(       dj  UR                  USSUR                  (       a  SOSSS9  UR                  (       a3  U R                  5       nUR                  Ul        UR!                  USS	S	S9  U R                  S	S
9nUR                  USS	SS9  UR                  USSS9  U(       dj  UR                  USSUR"                  (       a  SOSSS9  UR"                  (       a3  U R                  5       nUR$                  Ul        UR!                  USS	S	S9  U(       a  U R                  US5        U(       Gaa  U R                  S	S
9nUR&                  R(                  S:X  a  UR                  UR                   SS	S9  OUR                  UR                   S5        U R                  S	S
9nUR&                  R(                  S:X  a  UR                  USSS	S 9  OUR                  USS!S9  U R                  S	S
9nUR                  R*                  nU(       aC  UR                  US"SS#S$9  UR                  S	S
9nUR,                  Ul        UR/                  S%S&S'9  g UR                  US"S(S9  UR                  S	S
9nUR,                  (       a  U R!                  US)S	S*9  g g U	S:X  a  U R                  S	S
9nU(       a  UR                  UR                   SS	S9  OUR                  UR                   S5        U R                  S	S
9nU(       a  UR                  USSS	S 9  g UR                  USS!S9  g UR                  S+:X  a  U R0                  nU(       a"  U R                  S	S
9nUR                  US,SS	S 9  O'SU l        U R                  S	S
9nUR                  US,S	S9  U R                  S	S
9nUR                  US-5        U R                  S	S
9nUR                  US.5        U R                  S	S
9nUR                  USS/S9  Xl        g U	S0:X  aG  U R                  US1S	S9  U R                  US25        UR2                  S3;   a  U R                  US45        g g U	S5:X  a5  U R                  US6S7S9  U R/                  S85        U R                  US25        g g )9NF)creater   >   rz  TINTERASEr  r  rz  r  Tr   r  r  r  r   r   r  r   r   r   curve_sensitivityr   r  r  r  r  r  subdivisionr  stroke_typer  	caps_typer  z	Caps Typeuse_thickness_curveSPHERECURVEr   TOPBAR_PT_gpencil_primitivezThickness Profile)r  r   zUse Thickness Profilethickness_primitive_curver  rJ  fill_directionfill_factordilater  r1  eraser_modeuse_active_layer_only>   HARDSOFTuse_keep_caps_eraserr0  vertex_modeModeVIEW3D_PT_tools_brush_falloff)r  r   r   	workspacetoolsfrom_space_view3d_moder   r3   r$  r  r   r   r  r   r  r   r   r  r  rM   r(   gpencil_sculptr6  rv  r]  r=  )r_   r   r   r  r  r  r   rC   is_primitive_toolgrease_pencil_brush_typer  r   r   r   rw  use_property_split_prevs                   r   (brush_basic_grease_pencil_paint_settingsrL    s   ((K!!//E""99',,u9UD (   %77#<<@Q  G+1IV1SWh%Djjtj$T7+"5HH!(-(=(=_<   $$mmo"44
**;8KSWfj*kjjtj$
4jA/b9HH%(-(A(A_|   ((mmo"88
**;8HPTcg*hE=) jjtj$>>-/HHU++]4HHHHU++];jjtj$>>-/HH[+BtHDHH[+KH@jjtj$((77HHX42MHR'''%C!55CJKK3(  
 HHX4;RHS'''%C++--h8S[_-` , 
"V	+jjtj$HHU++]4HHHHU++];jjtj$HH[+BtHDHH[+KH@		!	!V	+"(";";**4*(CHH["2DHI(-F%**4*(CHH["24H@jjtj$m,jjtj$h'jjtj$[1$;!	!W	,Kt<K!89""&66KK%;< 7	!V	+KV<67K!89 
,r   c                <   [         R                  U UUSSSSSUS9	  UR                  nUR                  (       a  SOS n[         R                  U UUSUS	S
US9  UR                  S;   a6  [         R                  U UUSSSSUS9  U R                  USSU(       a  SOSS9  g g )Nr  r  r  r  Tr   r   r   r   r   r  r  r  r  r   r   r   r   >   WEIGHTr~  r  Weight)r   r   r   r   r  r   	Direction)r  r   )rV   r   r  r  gpencil_weight_brush_typer   )r_   r   r   r  r  r   s         r   )brush_basic_grease_pencil_weight_settingsrT  ,  s    "")' # 
 ,,L/;/Q/Q+W[M""#+ # 	 &&*4&&- 	' 		
 	E;t"[Y 5r   c                   [         R                  U UUSSSSSUS9	  UR                  S;   a  [         R                  U UUSS	S
SUS9  UR                  nUR                  S;   a!  U R	                  SS9nUR                  USSS9  g g )Nr  r  r  r  TrN  >   BLURrz  r6  r  r  r  r  rO  >   rz  REPLACEr   rB  rC  r   )rV   r   gpencil_vertex_brush_typer  r   r   )r_   r   r   r  r  r   s         r   )brush_basic_grease_pencil_vertex_settingsrY  T  s    "")' # 
 &&*CC&&1/ 	' 		
 ((K&&*==jjtj$m&9 >r   __main__)register_class)F))r)   	bpy.typesr   r   bpy.app.translationsr   r  r   rl  r   r   r	   r   rV   r   r   r  r  rF  rl  r  r  r  r6  rx  ra  r  r  r  r  r  r  r-  rL  rT  rY  classesr   	bpy.utilsr[  r   r   r   r   <module>r`     sn  
  ! S
 S
lU U&TW TWp7" 7'Pz 'PT E
  EF9] 9]x')z ')TT
* T
n L
  LF6:: 6:rB: BJ	 	xHv	`;F"ZJCIL+0^-U`%B FK D38l X] |:~ RW %ZP RW :@ '&
 z(s  r   