
    ai\                         S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	  S SK
JrJr  S r " S S5      r " S	 S
\\5      r " S S\\5      rS rS r " S S\\5      r " S S\5      r\\\\4rg)    )VectorN)Operator)BoolPropertyEnumPropertyFloatPropertyIntProperty)pgettext_rptpgettext_datac                 d   S=p#U R                    H  nUR                  nU(       d  M    O   Uc  [        R                  R                  R                  U5      nUR                  R                  R                  5         U(       a  X#l        U$ U R                  R                  R                  U5        U$ )z/Use an existing material or add a new one.
    N)
material_slotsmaterialbpydata	materialsnew	node_treenodesclearappend)objmat_namematmat_slots       i/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/object_quick_effects.pyobject_ensure_materialr      s     C&&3 ' {hh  $$X.!!# # J HH%%c*J    c                   $    \ rS rSr\S 5       rSrg)ObjectModeOperator&   c                      UR                   S:H  $ )NOBJECT)mode)clscontexts     r   pollObjectModeOperator.poll'   s    ||x''r    N)__name__
__module____qualname____firstlineno__classmethodr%   __static_attributes__r'   r   r   r   r   &   s    ( (r   r   c            
           \ rS rSr% SrSrSrSS1r\" SSS	S
9\	S'   \
" SSSSSSSS9\	S'   \
" SSSSSSSS9\	S'   \
" SSSSSS9\	S'   \" SSS 9\	S!'   \" S"SS 9\	S#'   \" S$SS 9\	S%'   S& rS'rg())QuickFur,   z'Add a fur setup to the selected objectszobject.quick_furz	Quick FurREGISTERUNDODensity))LOWLow )MEDIUMMediumr6   )HIGHHighr6   r7   nameitemsdefaultdensityLengthgMbP?d   {Gz?
   g?DISTANCE)r<   minmaxsoft_minsoft_maxr>   subtypelengthzHair Radius        g-C6?radiuszView Percentage      ?FACTOR)r<   rE   rF   r>   rI   view_percentagezApply Hair GuidesT)r<   r>   apply_hair_guidesNoise	use_noiseFrizz	use_frizzc           	      d  ^  SS K nSSKJn  UR                   Vs/ s H  oDR                  S:X  d  M  UPM     nnU(       d  U R                  S1S5        S1$ U R                  S:X  a  SnO%U R                  S	:X  a  S
nOU R                  S:X  a  SnUR                  R                  [        R                  R                  S5      SSS5      n/ SQnU R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U" S[        S U 5       5      5      n	[        R                   R"                  R%                  USSSS9 u  pA
UR&                  R)                  U VVs/ s H  u  pUPM	     snn5        S S S 5        WR&                   Vs0 s H  oR*                  U_M     snm U	" U 4S jU 5       6 n@ [        R                   R,                  R/                  [1        S5      5      nSnSnSnU GH  nUR                   n[3        UR4                  5      S:X  a  SnM-  UR7                  US9   [        R8                  R:                  R=                  5         S S S 5        UR>                  nUR                   nUR,                  R                  U5        SnUR@                   H  nUURB                  -  nM     US:X  a  SnSnOWU-  nURD                  R/                  [1        S5      SS 9nURF                  Ul$        UUS!'   URJ                  US"'   SUS#'   U RL                  US$'   UUS%'   US&-  US''   URD                  R/                  [1        S(5      SS 9nURN                  Ul$        U RN                  US)'   URD                  R/                  [1        S*5      SS 9nURP                  Ul$        UUS!'   URJ                  US"'   SUS#'   UUS''   U RR                  US+'   SUS,'   U R                  (       a4  URD                  R/                  [1        S-5      SS 9nURT                  Ul$        U R                  (       a4  URD                  R/                  [1        S.5      SS 9nURV                  Ul$        U RX                  (       aJ  UR7                  US/9    [        R8                  R:                  R[                  UR*                  S09  S S S 5        URD                  R_                  S[3        URD                  5      S1-
  5        GM      U(       a  U R                  S21S35        U(       a  U R                  S21S45        U(       a  U(       d  U R                  S21S55        S61$ s  snf s  snnf ! , (       d  f       GN= fs  snf ! , (       d  f       GN= f! [\         a    Sn Nf = f! , (       d  f       N= f)7Nr   )
namedtupleMESHERRORSelect at least one mesh object	CANCELLEDr4   i  r7   '  r9   i 	DATAFILESassetsr   z!procedural_hair_node_assets.blend))generatezGenerate Hair Curves)interpolateInterpolate Hair Curves)rL   Set Hair Curve Profile)noiseHair Curves Noise)frizzFrizz Hair CurvesNodeGroupDatac              3   *   #    U  H	  u  pUv   M     g 7fNr'   ).0v_s      r   	<genexpr>#QuickFur.execute.<locals>.<genexpr>   s     9X!s   TF)linkpackset_fakec              3   2   >#    U  H  u  pTU   v   M     g 7frh   r'   )ri   rk   r<   node_groups_name_maps      r   rl   rm      s     %`P_WQ&:4&@P_s   zFur Material)active_objectrK   rC   GenerateNODESr<   typeInput_2Input_18_attribute_nameInput_12Input_20Input_22rB   Input_15ra   Input_3r`   Input_17Input_24rc   re   )object)modifier   WARNINGzMesh has no face areazMesh UV map requiredz#Unable to apply "Generate" modifierFINISHED)0oscollectionsrV   selected_objectsrw   reportr?   pathjoinr   utilssystem_resourcerR   r   rT   tupler   	librariesloadnode_groupsextendr<   r   r   data_len	uv_layerstemp_overrideopsr   curves_empty_hair_addrs   polygonsarea	modifiersr^   
node_groupsurface_uv_maprJ   rL   r_   rO   rb   rd   rP   modifier_apply	Exceptionmove)!selfr$   r   rV   r   mesh_objectscountasset_library_filepathattr_name_pairsrf   data_srcdata_dstrk   r<   idr   r   mesh_with_zero_areamesh_missing_uv_mapmodifier_apply_errormesh_objectmeshcurves_objectcurvesr   polyr?   generate_modifierradius_modifierinterpolate_modifiernoise_modifierfrizz_modifierrr   s!                                   @r   executeQuickFur.execute\   s.   *'.'?'?V'?88vCU'?VKK	#DE= <<5 E\\X%E\\V#E!#II%%k2/	"

 >>""#AB>>""#AB"?E9X9X4XYXX$$&	 % 

 "h  ''_(M_'!_(MN
 7?6J6JK6J6JK#%`P_%`a 88%%))%*?@##$'K##D4>>"a'&*#&&[&A446 B#11M"''F##H-D		! &s{&*#$, - 7 7 ; ;zARY` ; a+6+?+?(+6i(;A;P;P78,0j),0KKj),4j),3dNj)+5599uE]?^el9mO)4););O&)-OI&#0#:#:#>#>EJcDdkr#>#s .9.E.E +.9 +>D>S>S !:;/3 ,/6 ,/3/C/C ,/3 ,~~!.!8!8!<!<%H[B\cj!<!k,7,=,=)~~!.!8!8!<!<%H[B\cj!<!k,7,=,=)%%**-*@455?P?U?U5V A ##((C0G0G,H1,LMu (x KK%<=KK%;<(;KK%LM|s WR )N
 
  L  BAb % 4/3,4 A@sd   UUU&2U  U&U8=)U=V!1V U&&
U5=
V	VV!VV!!
V/	r'   N)r(   r)   r*   r+   __doc__	bl_idnamebl_label
bl_optionsr   __annotations__r   r   r   r-   r'   r   r   r/   r/   ,   s    1"IHf%J

   s  R#  #S	  $      
}r   r/   c            	           \ rS rSr% SrSrSrSS1r\" SSS	S
9\	S'   \
" SSSSSSS9\	S'   \
" SSSSSSS9\	S'   \
" SSSSSSS9\	S'   \
" SSSSSSS9\	S'   \" SSSSSSS9\	S'   \" SS S!S"9\	S#'   S$ rS% rS&rg')(QuickExplode   zMake selected objects explodezobject.quick_explodezQuick Exploder1   r2   zExplode Style))EXPLODEExploder6   )BLENDBlendr6   r   r;   stylezNumber of Pieces   r[   rA   )r<   rE   rF   rG   rH   r>   amountDurationr   i 2   frame_durationzStart Frameframe_startz	End FramerC   	frame_endzOutwards Velocityr   velocityFadezFade the pieces over timeTr<   descriptionr>   fadec                    UR                  5       nUR                  nUb  UR                  S:w  a  U R                  S1S5        S1$ UR                   Vs/ s H  nUR                  S:X  d  M  XC:w  d  M  UPM      nnUR                  SU5        U R                  S:X  a,  [        U5      S:w  a  U R                  S1S5        S	U l        S1$ U(       d  U R                  S1S
5        S1$ U HN  nUR                  (       d  M  U R                  S1[        S5      R                  UR                  5      5        S1s  $    U R                  S:X  a
  US   nUS   nU GH  nXBS'   UR                  " S30 UD6   [        R                  R                  R!                  5         S S S 5        UR                  S   R"                  nU R$                  Ul        U R(                  U R*                  -
  Ul        U R,                  Ul        U R*                  Ul        U R0                  Ul        SUl        UR6                  R9                  [;        S5      S	S9n	SU	l        U R>                  (       Ga  SU	l         URB                  RD                  R9                  [;        S5      S9n
U
R                  U	l#        [I        U[;        S5      5      nSUl%        URL                  RN                  nUR9                  S5      nUR9                  S5      nXl(        URR                  S   nURR                  S   S-
  nSnXRT                  -   U-   URR                  S'   UR9                  S5      nUU-
  U4Ul)        URL                  RV                  R9                  URX                  S   URZ                  S   5        URL                  RV                  R9                  URX                  S   URZ                  S   5        US-  nUR9                  S5      nUU-
  U4Ul)        URL                  RV                  R9                  URX                  S    URZ                  S   5        US-  nUR9                  S!5      nUU-
  U4Ul)        US-  nURL                  RV                  R9                  URX                  S"   URZ                  S#   5        UR\                  nS$UR^                  S   R`                  S%'   S&UR^                  S   R`                  S%'   U R                  S:X  af  S'UR^                  S   l1        S(UR^                  S   l1        UW:X  a8  S&UR^                  S   R`                  S%'   S$UR^                  S   R`                  S%'   UR9                  S)5      nUU-
  U4Ul)        US-  nURL                  RV                  R9                  URX                  S*   URZ                  S#   5        UR9                  S+5      nUU-
  U4Ul)        U
R                  Ul2        URL                  RV                  R9                  URX                  S,   URZ                  S-   5        U R                  S:X  a  S.Ul3        SUl4        S/Ul5        UR                  S   nUR                  S   US0'   UR                  " S30 UD6   [        R                  Rl                  Ro                  5         [        R                  Rl                  Ro                  5         S S S 5        UW:X  a  WURp                  S   l        GM  UURp                  S   l        U R0                  * Ul        SU	l9        SU	l         GM  U R0                  Ul:        U R0                  S1-  Ul;        GM     S21$ s  snf ! , (       d  f       GN= f! , (       d  f       N= f)4NrW   rX   zActive object is not a meshrZ   r   r   r   zSelect two mesh objectsr   rY   z)Object {!r} already has a particle systemr   r   NONEr   rv   TFzExplode fade)r<   zExplode FadeDITHEREDShaderNodeOutputMaterialShaderNodeBsdfPrincipledi     ShaderNodeMixShaderShaderSurfaceShaderNodeBsdfTransparentBSDFShaderNodeValToRGBAlphaFacrK      rM   gZd;O?gZd;O?ShaderNodeSeparateXYZXShaderNodeUVMapUVr   KEYEDNORparticle_systemg      $@r   r'   )<copyrs   rw   r   r   insertr   r   particle_systemsrpt_formatr<   r   r   r   r   particle_system_addsettingsr   r   r   r   r   lifetimer   normal_factorrender_typer   r   r   use_edge_cutr   	show_deadr   r   particle_uvr   surface_render_methodr   r   activelocationwidthlinksoutputsinputs
color_rampelementscolorpositionuv_mapphysics_typeuse_emit_randomrotation_modeparticle
new_targettargetsshow_unbornfactor_randomangular_velocity_factor)r   r$   context_overrideobj_actr   r   from_objto_objr   explodeuvr   r   node_out_matnode_surfacenode_xnode_yoffset_xnode_mix
node_trans	node_rampr   node_sepnode_uvpsyss                            r   r   QuickExplode.execute  s   "<<>''?gllf4KK	#@A=  #33
3Cxx6! &)n 3 	 
 	Aw':: S%6!%;KK	#<="DJ= KK	#DE= C###WIt,W'X'_'_`c`h`h'ij#}$	   :: #AH!!_FC),X&&&:)9:224 ; ++B/88H![[HN!%$2E2E!EH#'#3#3H  $ 3 3H%)]]H"#)H mm''U9-=I'NG#'G yyy$)!XX''++~1F+G&(gg#,S%2GH,6)++$yy)CD$yy)CD+%..q1%..q1C7+14F4F+F+Q%%a( 99%:;%+h%6$?!##''(<(<Q(?QRAST##''(8(8(BLDWDWXaDbcC"YY'BC
'-'8&&A
###''
(:(:6(BHOOTUDVWC!II&:;	&,x&7%@	"C##''	(9(9'(BHOOTYDZ[&11
25
##A&,,Q/25
##A&,,Q/::(6;J''*36;J''*3f}:=
++A.44Q7:=
++A.44Q7 99%<=%+h%6$?!C##''(8(8(=y?O?OPU?VW))$56$*X$5v#> !###''(=xx?XYzzW$(/%+0().&++B/696J6J26N !23**>-=>GG$$//1GG$$//1 ? (?-3DLLO*-5DLLO*.2mm^H**/G'(,G%)-&37==43G0}  @ |q
4 ;:^ ?>s+   ] ,] 3] 0)]%A]7%
]4	7
^	c                     UR                   R                  U l        U R                  U R                  -   U l        U R                  U5      $ rh   )sceneframe_currentr   r   r   r   )r   r$   _events      r   invokeQuickExplode.invoke  s;    "==66))D,?,??||G$$r   )r   r   r   N)r(   r)   r*   r+   r   r   r   r   r   r   r   r   r   r   r   r-   r'   r   r   r   r      s    '&IHf%J
   5U	   6U	  6U	  6U	   6R	  / @D%r   r   c                 p   [        SS5       H  nU R                  [        U R                  U   5      -  n[	        US   US   5      US'   [	        US   US   5      US'   [	        US   US   5      US'   [        US   US   5      US'   [        US   US   5      US'   [        US   US   5      US'   M     g )Nr      r   r   )rangematrix_worldr   	bound_boxrE   rF   )r   min_comax_coibb_vecs        r   obj_bb_minmaxr+    s    1a[!!F3==+;$<<q	6!9-q	q	6!9-q	q	6!9-q	q	6!9-q	q	6!9-q	q	6!9-q	 r   c                     U S-  US-  4$ )Nr      r'   )xys     r   grid_locationr0    s    GQWr   c                   \    \ rS rSr% SrSrSrSS1r\" SSS	S
9\	S'   \
" SSSS9\	S'   S rSrg)
QuickSmokei  z&Use selected objects as smoke emitterszobject.quick_smokezQuick Smoker1   r2   zSmoke Style))SMOKESmoker6   )FIREFirer6   )BOTHzSmoke & Firer6   r3  r;   r   zRender Smoke Objectsz/Keep the smoke objects visible during renderingFr   
show_flowsc                 n   [         R                  R                  R                  (       d  U R	                  S1S5        S1$ UR                  5       nUR                   Vs/ s H  nUR                  S:X  d  M  UPM     nn[        S5      nU* nU(       d  U R	                  S1S5        S1$ U H  nX2S'   UR                  " S&0 UD6   [         R                  R                  R                  SS	9  S S S 5        S
UR                  S   l        U R                  UR                  S   R                   l        SUR                  S   R                   l        SUR                  S   R                   l        U R(                  (       d  SUl        [-        X5U5        M     [         R                  R.                  R1                  5         UR2                  n[5        S5      Ul        SXe-   -  [        S5      -   Ul        SXe-
  -  [        S5      -   Ul        [         R                  R                  R                  SS	9  SUR                  S   l        SUR                  S   R<                  l        U R                  SS1:X  a  SUR                  S   R<                  l         [         R                  R                  RB                  (       a  SUR                  S   R<                  l"        [         R                  R                  RG                  5         [         RH                  RJ                  RM                  [5        S5      5      nXsRN                  S   l(        URR                  nURT                  n	URV                  n
U	RY                  5         U	RM                  SS	9n[[        SS5      Ul        U	RM                  SS	9n[[        SS5      Ul        U
RM                  UR\                  S    UR^                  S    5        S!UR^                  S"   l0        U R                  S#;   a  SUR^                  S$   l0        S%1$ s  snf ! , (       d  f       GN@= f)'NrX   Built without Fluid modifierrZ   rW        j@r<  r<  rY   r   FLUIDrw   FLOWr   INFLOWrM   WIREzSmoke Domain      ?)rK   rK   rM   rM   rM   g       @DOMAINg      @r5  r7  TOPENVDBzSmoke Domain Materialr   r      r   ShaderNodeVolumePrincipled   Volumeg      @r3   >   r7  r5  zBlackbody Intensityr   r'   )1r   appbuild_optionsfluidr   r   r   rw   r   r   r   r   modifier_addr   
fluid_typer   flow_settings	flow_typeflow_behaviorsurface_distancer8  display_typer+  r   primitive_cube_addrs   r   r<   r   scaledomain_settingscfl_conditionrR   openvdbcache_data_formatmaterial_slot_addr   r   r   r   r   r   r   r   r   r0  r   r   default_value)r   r$   r
  r   r   r'  r(  r   treer   r   node_outnode_principleds                r   r   QuickSmoke.execute  sp   ww$$**KK	#AB= "<<>"33
3Cxx6! 3 	 
 67KK	#DE= C),X&&&:)9:+++9 ;+1CMM"( 9=

CMM"++5 =ECMM"++9 @CCMM"++<??#)  #v.)  . 	'')##( fo.1HH6?+f_.EE	 	###1'/b$:=b))7::&&)):>CMM"--7 77  ((BKCMM"--?
 	((*hh  $$U+B%CD),1& }}




 99"<9=)!Q/  )))E)F#0A#6 		/))(3X__X5NO:=y)7::))JMO""#89G|k
 ;:s   P 6P (P%%
P4	r'   N)r(   r)   r*   r+   r   r   r   r   r   r   r   r   r-   r'   r   r   r2  r2    sQ    0$IHf%J

   #E [r   r2  c                   F    \ rS rSr% SrSrSrSS1r\" SSS	S
9\	S'   S r
Srg)QuickLiquidi  zMake selected objects liquidzobject.quick_liquidzQuick Liquidr1   r2   zRender Liquid Objectsz0Keep the liquid objects visible during renderingFr   r8  c                    [         R                  R                  R                  (       d  U R	                  S1S5        S1$ UR                  5       nUR                   Vs/ s H  nUR                  S:X  d  M  UPM     nn[        S5      nU* nU(       d  U R	                  S1S5        S1$ [         R                  R                  R                   HK  nUR                  S:X  d  M  UR                   H&  nUR                  S:X  d  M  SUR                  l        M(     MM     U H  nX2S	'   UR                  " S00 UD6   [         R                  R                   R#                  S
S9  S S S 5        SUR$                  S   l        SUR$                  S   R(                  l        SUR$                  S   R(                  l        SUR$                  S   R(                  l        U R0                  (       d  SUl        [5        X5U5        M     [         R                  R6                  R9                  SS9  UR:                  n[=        S5      Ul        SXe-   -  [        S5      -   Ul         SXe-
  -  [        S5      -   Ul!        [         R                  R                   R#                  S
S9  SUR$                  S   l        SUR$                  S   RD                  l#        SUR$                  S   RD                  l$        SUR$                  S   RD                  l%        SUR$                  S   RD                  l&        SUR$                  S   RD                  l'        SUR$                  S   RD                  l(        [         R                  R                  RR                  (       a  SUR$                  S   RD                  l*        SUR$                  S   RD                  l+        SUR$                  S   RD                  l,        UR$                  S   n	SU	RD                  l-        SU	RD                  l.        SU	RD                  l/        [         R                  R                   Ra                  5         [         R                  R                   Rc                  5         [         Rd                  Rf                  Ri                  [=        S5      5      n
XRj                  S    l6        U
Rn                  nURp                  nURr                  nURu                  5         URi                  S!S9n[w        S"S#5      Ul         URi                  S$S9n[w        S%S#5      Ul         URi                  URx                  S&   URz                  S'   5        S(URz                  S)   l>        URi                  S*S9n[w        S%S+5      Ul         URi                  URx                  S,   URz                  S,   5        S-URz                  S.   l>        S/1$ s  snf ! , (       d  f       GN}= f)1NrX   r:  rZ   rW   r;  rY   VIEW_3D	WIREFRAMEr   r=  r>  r?  r   LIQUIDGEOMETRYrK   rA  WORLD)alignzLiquid DomainrB  )rK   rK   g      rC  rD  TrE  BOBJECTPHIg{Gz?zLiquid Domain Materialr   r   rF  r   ShaderNodeBsdfGlassrH  r   r   gHzG?IORShaderNodeVolumeAbsorptionr   rI  )g?g?rM   rM   Colorr   r'   )?r   rJ  rK  rL  r   r   r   rw   r   r$   screenareasspacesshadingr   r   r   rM  r   rN  rO  rP  rQ  rR  r8  rS  r+  r   rT  rs   r   r<   r   rU  rV  use_collision_border_frontuse_collision_border_backuse_collision_border_rightuse_collision_border_leftuse_collision_border_topuse_collision_border_bottomrX  rY  cache_mesh_formatdomain_typecolor_ramp_field	use_slicedisplay_thicknessshade_smoothrZ  r   r   r   r   r   r   r   r   r   r0  r   r   r[  )r   r$   r
  r   r   r'  r(  r   spaceliquid_domainr   r\  r   r   r]  
node_glassnode_absorptions                    r   r   QuickLiquid.execute)  s   ww$$**KK	#AB= "<<>"33
3Cxx6! 3 	 
 67KK	#DE=  KK&&,,DyyI%![[EzzY.-8* ) -  C),X&&&:)9:+++9 ;+1CMM"( 9ACMM"++5 =GCMM"++9 @CCMM"++<??#)  #v.)  . 	''g'6##) fo.8H1II6?+f_.EE	 	###1'/b$GKb))DFJb))CGKb))DFJb))CEIb))BHLb))E 77  ((BKCMM"--?>Gb)); 9Ab))5b) :?%%6 37%%/ ;?%%7 	##% 	((*hh  $$U+C%DE),1& }}




 99"<9=)!Q/ YY$9Y:
+Aq1
		*$$V,hooi.HI15
% .  )))E)F#0A#6 		/))(3X__X5NO8Lw'5|c
* ;:s   W6W7(W
W$	r'   N)r(   r)   r*   r+   r   r   r   r   r   r   r   r-   r'   r   r   ra  ra    s5    &%IHf%J$F wr   ra  )	mathutilsr   r   	bpy.typesr   	bpy.propsr   r   r   r   bpy.app.translationsr	   r   r
   r   r   r   r/   r   r+  r0  r2  ra  classesr'   r   r   <module>r     s   
  
  $( (m!8 m`z%%x z%z	.q#X qhC( CN 	r   