
    }iY                     ~    S SK r S SKJr  S SKr " S S5      r     S
S jrS rS SKJrJ	r	J
r
   " S S	\5      r\4rg)    N)Operatorc                   0    \ rS rSrSrS rS rS rS rSr	g)	
prettyface
   )uvwidthheightchildrenxoffyoff
has_parentrotc                 	   SU l         SU l        SU l        SU l        [	        U5      [
        :X  a  S U l        [        U5      S:X  aC  US   R                  US   l        US   R                  S-  U l        US   R                  U l	        O[        U5      S:X  a  US   R                  nUS   =R                  U-  sl        US   =R                  U-  sl        US   =R                  U-  sl        US   =R                  U-  sl        US-  =U l        U l	        U H
  nSUl         M     Xl
        g [	        U5      [        :X  ak  Xl        US   u  pEnUS   (       a7  US   u  pxn	XVS      XS      -   S-  U l        XVS      XS      -   S-  U l	        OUS   U l        US   U l	        / U l
        g UR                  R                  R                  R                  n
UR                    Vs/ s H  oU   R                  PM     snU l        UR"                   Vs/ s H%  oR                  R"                  U   R$                  PM'     nn[        U R                  5      S:X  ah  US   US   -
  R&                  US   US   -
  R&                  -   S-  U l        US   US   -
  R&                  US   US   -
  R&                  -   S-  U l	        GOUR(                  nUR+                  [,        R.                  " S	5      5      nU Vs/ s H  nUU-  R0                  PM     nn[,        R2                  R5                  U5      n[,        R6                  R9                  US5      nU Vs/ s H  nUU-  PM
     nnU Vs/ s H  nUR:                  PM     nnU Vs/ s H  nUR<                  PM     nn[?        U5      n[?        U5      n[A        U5      n[A        U5      nUU-
  nUU-
  nUU l        UU l	        US
:  d  US
:  a.  [C        [        U5      5       H  nSU R                  U   S S & M     OI[E        U5       H:  u  nnUR:                  U-
  U-  UR<                  U-
  U-  4U R                  U   S S & M<     / U l
        g s  snf s  snf s  snf s  snf s  snf s  snf )NFr               T       @)        r         ?gHz>)r   r   )#r   r   r   r   typelistr   lenr   r	   r
   tupleid_data	uv_layersactivedataloop_indicesverticescolengthnormalrotation_difference	mathutilsVectorxygeometry
box_fit_2dMatrixRotationxyminmaxrange	enumerate)selfr   dpf_f1lens1lens1ord_f2lens2lens2orduv_layerivcosnorr!   cos_2danglematxsysxminyminxmaxymaxxspanyspans                               d/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/uvcalc_lightmap.py__init__prettyface.__init__   s   		:DG 4yA~#Aw}}Q!!W]]Q.
"1gnnTaGMMQ!Q!Q!Q!+,q50
T[  $  !M$Z5  G#'7 CAw'+Aw$H#QK05!3EEL
$a[1E1+4FF#M"1X
#AhDM ||--4499H/3/@/@A/@!{~~/@ADG 9=F1<<((+..CF477|q "1vA66#a&3q6/9Q9QQUXX
 #AQ773q6CF?:R:RRVYY [[**9+;+;O+LM034"1r6++4!**55f=&&//q9/56v38v6%+,VrbddV,%+,VrbddV,2w2w2w2wtt"
# 9$	(9"3v;/(2
1 0 "+6!22TTD[E1TTD[E1)
1 "3 DMc B G 5
 7,,s$   %Q-,Q27Q7Q<*RRc                    U R                   (       aX  [        U R                   5      S:X  a?  U R                   S   U R                   S   U R                   S   U R                   S   4U l         U R                  U R                  sU l        U l        U R                  U R
                  sU l        U l        U R                  (       + U l        U R                   H  nUR                  5         M     g )Nr   r   r   r   r   )	r   r   r	   r   r   r   r   r
   spin)r2   r4   s     rL   rP   prettyface.spin   s    77s477|q(ggaj$''!*dggaj$''!*DDG"&++tzz
DK#yy$))	49xx<--BGGI      c           	        ^ ^^ SSK Jm  UT R                  -  nUT R                  -  nT R                   H  nUR                  XX4XV5        M     T R                  nU(       d  g Un	Un
UT R                  -   nUT R                  -   nX-  U-   n	X-  U-
  nX-  U-   n
X-  U-
  n[        U5      S:X  aQ  U4S jmUU 4S jnUS   S   nU" XU
4XU-
  4X-
  U
45        US   (       a  US   S   nU" XU4XU-   4X-   U45        g g [        U5      S:X  a%  X4US   S S & X4US   S S & X4US   S S & X4US   S S & g X-
  nX-
  nU H  nUu  nnU	UU-  -   U
UU-  -   4US S & M     g )	Nr   )pir   c                    > X-
  R                  X -
  T5      nX-
  R                  X!-
  T5      nTX4-   -
  nUS4US4US4/$ )Nr   r   r   )rB   )v1v2v3a1a2a3rT   s         rL   get_tri_angles(prettyface.place.<locals>.get_tri_angles   sO    g__RWb1g__RWb127^Q"a2q'22rR   c                 2  > T" U R                    Vs/ s H%  o@R                  R                   U   R                  PM'     sn6 nUR                  5         U VVs/ s H  u  pgUPM	     nnnU R                  R                  R
                  R                  n	U R                   Vs/ s H  oyU   R                  PM     n
nTR                  (       a  XUS      S S & X*US      S S & X:US      S S & g XUS      S S & X*US      S S & X:US      S S & g s  snf s  snnf s  snf )Nr   r   r   )
r    r   r!   sortr   r   r   r   r   r   )fp1p2p3r=   	angles_coar<   Ir;   fuvr\   r2   s              rL   set_uv prettyface.place.<locals>.set_uv   s     +qzz,Zz!YY-?-?-B-E-Ez,Z[	 #,-941Q9-99..55::/0~~>~!{~~~>88#%!IaL#%!IaL#%!IaL#%!IaL#%!IaL#%!IaL -[ . ?s   ,D	D Dr   r   r   )
mathrT   r   r   r
   placer   r   r	   r   )r2   r   r   xfacyfacmargin_wmargin_hr4   r   x1y1x2y2rh   r`   rJ   rK   uvcor,   r-   r\   rT   s   `                   @@rL   rk   prettyface.place   s   				--BHHTX@   WWDJJDKK Y!Y!Y!Y! r7a<3&2 1aA12h(] 3bmR5HI!uqE!Hqr(Rh$7"-9LM 
 2w!|61a61a61a61a DDAqq5y)q5y)DG rR   c                 2    U R                   U R                  4$ N)r   r	   )r2   s    rL   __hash__prettyface.__hash__   s    zz4;;&&rR   )r
   r   r	   r   r   r   r   r   N)
__name__
__module____qualname____firstlineno__	__slots__rM   rP   rk   rx   __static_attributes__ rR   rL   r   r   
   s!    	IhT	Rh'rR   r   c                 6  ^G SSK nSSKJn  U (       d  gUR                  5       nU(       a  / /n	O/ n	U  H  n
U(       a/  U
R                   Vs/ s H  oR                  (       d  M  UPM     nnOU
R                  SS nU(       a  U	S   R                  U5        OU	R                  U5        U(       a  U
R                  R                  5         U
R                  (       a  M  U
R                  R                  5         M     U	 GH5  n[        S5        U(       d  M  U Vs/ s H  oR                  S:  d  M  [        U5      PM!     nn[        U5      [        U5      :w  Ga4  S nU Vs/ s H  oR                  S:X  d  M  U" U5      PM     nnA[        R                  R                  [        U5      5      n[!        U5       H3  u  nu  nnnUUS      UUS      UUS	      4nUR#                  UU5        M5     UR%                  5         S
/[        U5      -  mGSnSn['        [        U5      5       GHa  nTGU   (       a  M  UU   nUu  nnnUUS      UUS      UUS	      4nSTGU'   UR)                  UUG4S jS9u  nnnU(       a  US:  a  UR                  [        US45      5          OUU   n UR                  [        UU 45      5        US-   nSTGU'   UU:  d  M  UR+                  UU5       V!V"s/ s H  u  n!n"n!TGU"   (       a  M  U"PM     n#n!n"[        U#5      S:  d  M  ['        S[        U#5      [        U#5      S	-  -
  S	5       HF  n$UR                  [        UU#U$      UU#U$S-         45      5        S=TGU#U$   '   TGU#U$S-      '   US-   nMH     GMd     Sn%Sn&Sn'U H$  nUR,                  n(U(U%:  a  U(n%U(U&:  a  U(n&U'U(-  n'M&     U" U%5      n)U" U&5      n*U" U'5      n+U)n,[        SSS9  / n-U,U*:  a+  U-R                  U,5        U,S-  n,U,S-  U+U-  :  a  OU,U*:  a  M+  U-(       d  U-R                  U,5        0 n.Sn/[/        U-5       H  n0U/U.U0'   U/S	-  n/M     [1        U.R3                  5       5      n.U.R5                  5         [        S5        U H  n1U1R6                  n2U1R8                  n3Sn4Sn5Sn6Sn7U. H8  u  n0n[;        U0U2-
  5      n8U8U4:  a  U8n4Un6[;        U0U3-
  5      n8U8U5:  d  M4  U8n5Un7M:     U6U1l        U7U1l        U6U7:  d  Mw  U1R=                  5         M     [        S5        [        SSS9  0 n90 n:U Hg  n1U1R6                  U1R8                  n3n2U2U3:X  a#  U9R?                  U2/ 5      R                  U15        MD  U:R?                  U2U34/ 5      R                  U15        Mi     Sn;U.S   S   n<U<S:  a  [A        U+U<-  U-  5      n=Sn>OSn=S
n>U>(       Ga  S
n>[1        U:R3                  5       5       H  u  n8n?U8S   U=:  d  M  [        U?5      S	:  d  M"  Sn>U;S-  n;[        U?RC                  5       U?RC                  5       /5      n@UR                  U@5        U@R6                  U@R8                  n3n2U2U3::  d   eU2U3:X  a"  U9R?                  U2/ 5      R                  W@5        O#U:R?                  U2U34/ 5      R                  W@5        [        U?5      S	:  a  M  M     [1        U9R3                  5       5       H  u  n8n?U8U=:  d  M  U?R5                  S S9  [        U?5      S:  d  M/  Sn>U;S-  n;[        U?RC                  5       U?RC                  5       U?RC                  5       U?RC                  5       /5      n@UR                  U@5        U@R6                  n2U9R?                  U2/ 5      R                  U@5        [        U?5      S:  a  M  M     U>(       a  GM  A9A:U V1s/ s H  n1U1RD                  (       a  M  U1PM     nn1[        U5      nSn8U(       aL  US-  nUU   n1U1R6                  U1R8                  :w  a  U8S-  n8U8S	-  (       a  U1R=                  5         U(       a  ML  [        SU;S5        [        S[        U5      SS9  [!        U5       VV1s/ s H!  u  nn1SSU1R6                  U1R8                  U/PM#     nAnn1[        RF                  RI                  UA5      u  nBnC[K        UB5      nB[K        UC5      nCUBU-  UB-  nDUCU-  UC-  nE[        S5        [        S SS9  [!        UA5       H%  u  nnFUU   RM                  UFS   UFS   WBWCWDWE5        M'     [        S5        GM8     U  H  n
U
RO                  5         M     [        S!RQ                  UR                  5       U-
  5      5        gs  snf s  snf s  snf s  sn"n!f s  sn1f s  sn1nf )"z
BOX_DIV if the maximum division of the UV map that
a box may be consolidated into.
A lower value will create more clumpy boxes and more wasted space,
and a higher value will be slower but waste less space
r   N)sqrtz
Starting unwrapr   c                    U R                    Vs/ s H%  oR                  R                   U   R                  PM'     nnUS   US   -
  R                  US   US   -
  R                  US   US   -
  R                  /nUR	                  [        U5      5      nUR	                  [        U5      5      n[        S5       H  nXd:w  d  M
  Xe:w  d  M  Un  O   UWU4nXU4$ s  snf )Nr   r   r   r   )r    r   r!   r"   indexr.   r/   r0   )	r`   r=   r>   lenslens_minlens_maxr<   lens_mid
lens_orders	            rL   trylens lightmap_uvpack.<locals>.trylens  s     :;DAyy))!,//DQ#a&003q6CF?2J2JSQRVVYZ[V\_LdLde::c$i0::c$i0qA}#$ " &x9

** Es   ,Cr   r   r   Fgh㈵>Tc                    > TU    (       + $ rw   r   )idx	added_idss    rL   <lambda>!lightmap_uvpack.<locals>.<lambda>I  s    yY\~K]rR   )filterr   g    חAz	Generating lengths... )endr   g      @doneg    eAz...donez	Consolidating Boxes...c                 ,    [        U R                  5      $ rw   )r   r
   )re   s    rL   r   r     s    S_rR   )keyConsolidatedzboxes, donez	Packing Boxesz...z	writing back UVszfinished all {:.2f} ))timerj   r   polygonsselectextendappendr   newprint
loop_totalr   r   r%   kdtreeKDTreer1   insertbalancer0   find
find_rangeareareversedr   itemsr_   r   r	   absrP   
setdefaultintpopr   r(   box_pack_2dfloatrk   updateformat)HmeshesPREF_SEL_ONLYPREF_NEW_UVLAYERPREF_PACK_IN_ONEPREF_BOX_DIVPREF_MARGIN_DIVr   r   tface_groupsmer`   facesface_selpretty_facesr   tri_lengthskdr<   r   ovectorpairs_addedtri_equality_thresholdtri1r5   r6   lo1sorted_l_vecnearestdisttri2_r   cluster_tri_idscimax_areamin_areatot_arear   max_lenmin_lenside_lencurr_lenlengthslengths_to_intsl_intlr4   wh
bestw_diff
besth_diffnew_wnew_hr3   	even_dictodd_dictcfloat_to_int_factormax_int_dimensionokboxes	pf_parent
boxes2Pack	packWidth
packHeightrn   ro   boxr   sH                                                                          @rL   lightmap_uvpackr      sk	    		Ad "81xxQE8EKKNEN!!%(u%LL |||LL# &  !"/7Mx!<<1;L
1xM |H-+$ 08Mx!<<1;L:71:xKM !!(([)9:B#,[#9<AtQqt*d1Q4j$qt*=		&!$ $: JJL#k"22IK%,"3{+,Q<"1~"&UC!#a&M5Q=%A-H#	!&(ggh?]g&^#gt'A+ ''
D$<(@A"7+##Jd|$<=)Ao%)	'" 00-/]]8E[-\'-\	3(~ -\ $ '
 ?+a/"'3+?3CWZ[C[+\^_"`B(// *K8K,LkZijlopjpZqNr+s t cgfIob&9:YWY\]W]G^=_*5/K #a5 -D A66DhhH  x.x.> 'R0 NN8$#~H
 #~? ::   NN8$ '"A!&OAQJE # 4467f BA		A%J%JEE'1AJz>!"JEAJz>!"JE ( BHBIu}	- 0 	i 	(b1	B88RYYqAAv$$Q+2226##QFB/66r:   .a03" #h1D&D$U VB #B B !!125Q4++e*/!Q$.		UYY[/I$J	$++I6(	0@0@1 Avv6%00B7>>yI$//A;BB9M e*/ 3& !!235((JJ#<J=e*/!Q$.		UYY[%))+W\W`W`Wb/c$d	$++I6%OO!,,Q3::9E e*/	 4/ bJ  &2G\r\G FAaBxx299$Qq5GGI a 	na/ 	\!2>FOP\F]^F]UQsC299a8F]
^ ) 2 2 > >z J	: )$	:&
/1Y>?2j@ 	f 	"+
+FAsO!!#a&#a&)ZS[\ , 	fk  n 
		  

 
'
'		a
89W	 9. N0 NJ'V H( _sB   e;#e;f /f  f7f)f

?f

:ff*(fc                 j   UR                   =(       a    UR                   R                  S:H  nU(       a5  UR                  n[        R                  R                   R                  SSS9  OUR                  n[        U Vs1 s HI  nUR                  S:X  d  M  UR                  =nR                  (       d  M4  UR                  (       d  MG  UiMK     sn5      nU(       d  U R                  S1S5        S1$ [        U40 UD6  U(       a(  [        R                  R                   R                  SSS9  S	1$ s  snf )
NEDITOBJECTF)modetoggleMESHERRORzNo mesh object	CANCELLEDFINISHED)objectr   objects_in_mode_unique_databpyopsmode_setselected_objectsr   r   r   r   is_editablereportr   )operatorcontextkwargsis_editmodeobjectsobjr   r   s           rL   unwrapr  /  s    ..BW^^%8%8F%BK55Xe<** s88v 	((NB$$ 	)+ 	g F 	#34}F%f% VE:<!s   >D0D05D0D0)BoolPropertyFloatPropertyIntPropertyc                       \ rS rSr% SrSrSrS1r\R                  R                  SSS9\S	'   \" S
SSS9\S'   \" SSSS9\S'   \" SSSSSS9\S'   \" SSSSSS9\S'   S  r\S! 5       rS" rS# rS$rg%)&LightMapPackiO  z'Pack each face's UVs into the UV boundszuv.lightmap_packzLightmap PackUNDO	Selection))	SEL_FACESzSelected FaceszPack only selected faces)	ALL_FACESz	All FaceszPack all faces in the mesh)namer   PREF_CONTEXTzShare Texture SpacezAObjects share texture space, map all objects into a single UV mapT)r  descriptiondefaultr   z
New UV Mapz)Create a new UV map for every mesh packedFr   zPack QualityzIQuality of the packing. Higher values will be slower but waste less spacer   0      )r  r  r.   r/   r  r   Marginz*Size of the margin as a division of the UVgMbP?r   g?r   c                 ,   U R                   nSUl        SUl        UR                  R                  S:H  nU(       a  UR                  U S5        UR                  U S5        UR                  U S5        UR                  U S5        UR                  U S5        g )	NTFr   r  r   r   r   r   )layoutuse_property_splituse_property_decorateactive_objectr   prop)r2   r   r  r   s       rL   drawLightMapPack.draw  s}    $(!',$++00F:KKn-D,-D,-D.)D+,rR   c                 J    UR                   nU=(       a    UR                  S:H  $ )Nr   )r  r   )clsr   obs      rL   pollLightMapPack.poll  s!    ""'bgg''rR   c                    U R                  5       nUR                  S5      nUR                  R                  S:H  nU(       d  SUS'   O#US:X  a  SUS'   OUS:X  a  SUS'   O[	        S5      e[        S	US
   S-  -  5      US
'   [        X40 UD6$ )Nr  r   Fr   r
  Tr  zinvalid contextr   r   g      Y@)as_keywordsr   r  r   	Exceptionr   r  )r2   r   r   r  r   s        rL   executeLightMapPack.execute  s    !!#zz.1++00F:&+F?#[(&*F?#[(&+F?#-..$'v6G/H5/P(Q$R !d.v..rR   c                 <    UR                   nUR                  U 5      $ rw   )window_managerinvoke_props_dialog)r2   r   _eventwms       rL   invokeLightMapPack.invoke  s    ##%%d++rR   r   N)rz   r{   r|   r}   __doc__	bl_idnamebl_label
bl_optionsr   propsEnumProperty__annotations__r  r  r  r  classmethodr  r#  r*  r   r   rR   rL   r  r  O  s    1"IH J))((
 )   #"#   #?  @ 2  #@s	 - ( (/&,rR   r  )TFF   i   )r   	bpy.typesr   r%   r   r   r  	bpy.propsr  r  r  r  classesr   rR   rL   <module>r8     s]   
   W' W'x H:V
: ? >^,8 ^,D rR   