§
    ¡)ýf�Y  ã                   óŠ   — d dl Z d dlmZ d dlZ G d„ d¦  «        Z	 	 	 	 	 dd	„Zd
„ Zd dlmZm	Z	m
Z
  G d„ de¦  «        ZefZdS )é    N)ÚOperatorc                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú
prettyface)ÚuvÚwidthÚheightÚchildrenÚxoffÚyoffÚ
has_parentÚrotc                 ó<  ‡‡‡‡— d| _         d| _        d| _        d| _        t	          ‰¦  «        t
          k    rød | _        t          ‰¦  «        dk    r@‰d         j        ‰d         _        ‰d         j        dz  | _        ‰d         j	        | _	        n‰t          ‰¦  «        dk    rv‰d         j        }‰d         xj        |z  c_        ‰d         xj        |z  c_        ‰d         xj        |z  c_        ‰d         xj        |z  c_        |dz  x| _        | _	        ‰D ]	}d|_         Œ
‰| _
        d S t	          ‰¦  «        t          k    r•‰| _        ‰d         \  }}}‰d         rW‰d         \  }}}	||d                  ||	d                  z   dz  | _        ||d                  ||	d                  z   dz  | _	        n|d         | _        |d         | _	        g | _
        d S ‰j        j        j        j        Šˆfd	„‰j        D ¦   «         | _        ˆfd
„‰j        D ¦   «         }
t          | j        ¦  «        dk    rl|
d         |
d         z
  j        |
d         |
d         z
  j        z   dz  | _        |
d         |
d         z
  j        |
d         |
d         z
  j        z   dz  | _	        �nr‰j        }|                     t+          j        d¦  «        ¦  «        Šˆfd„|
D ¦   «         }t*          j                             |¦  «        }t*          j                             |d¦  «        Šˆfd„|D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }t7          |¦  «        }t7          |¦  «        }t9          |¦  «        }t9          |¦  «        }||z
  }||z
  }|| _        || _	        |dk     s|dk     r2t;          t          |¦  «        ¦  «        D ]}d| j        |         d d …<   Œn?t=          |¦  «        D ]/\  }}|j        |z
  |z  |j         |z
  |z  f| j        |         d d …<   Œ0g | _
        d S )NFr   é   é   é   é   Tç       @c                 ó*   •— g | ]}‰|         j         ‘ŒS © ©r   ©Ú.0ÚiÚuv_layers     €úb/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/uvcalc_lightmap.pyú
<listcomp>z'prettyface.__init__.<locals>.<listcomp>M   s   ø€ ÐAÐAÐA¨!�x ”{”~ÐAÐAÐAó    c                 ó>   •— g | ]}‰j         j        |         j        ‘ŒS r   ©Úid_dataÚverticesÚco)r   ÚvÚdatas     €r   r   z'prettyface.__init__.<locals>.<listcomp>P   s&   ø€ ÐFÐFÐF°1�4”<Ô(¨Ô+Ô.ÐFÐFÐFr   )ç        r%   ç      ð?c                 ó$   •— g | ]}‰|z  j         ‘ŒS r   )Úxy)r   r"   Úrs     €r   r   z'prettyface.__init__.<locals>.<listcomp>^   s   ø€ Ð4Ð4Ð4¨"˜1˜r™6œ+Ð4Ð4Ð4r   c                 ó   •— g | ]}‰|z  ‘ŒS r   r   )r   r"   Úmats     €r   r   z'prettyface.__init__.<locals>.<listcomp>c   s   ø€ Ð6Ð6Ð6¨˜3 ™8Ð6Ð6Ð6r   c                 ó   — g | ]	}|j         ‘Œ
S r   )Úx©r   r"   s     r   r   z'prettyface.__init__.<locals>.<listcomp>d   ó   € Ð,Ð,Ð,˜r�b”dÐ,Ð,Ð,r   c                 ó   — g | ]	}|j         ‘Œ
S r   )Úyr.   s     r   r   z'prettyface.__init__.<locals>.<listcomp>e   r/   r   gH¯¼šò×z>)r%   r%   )!r   r   r
   r   ÚtypeÚlistr   Úlenr   r   r	   Útupler    Ú	uv_layersÚactiver$   Úloop_indicesr!   ÚlengthÚnormalÚrotation_differenceÚ	mathutilsÚVectorÚgeometryÚ
box_fit_2dÚMatrixÚRotationÚminÚmaxÚrangeÚ	enumerater-   r1   )Úselfr$   ÚdÚpfÚ_f1Úlens1Úlens1ordÚ_f2Úlens2Úlens2ordÚcosÚnoÚcos_2dÚangleÚxsÚysÚxminÚyminÚxmaxÚymaxÚxspanÚyspanr   r"   r+   r)   r   s    `                      @@@r   Ú__init__zprettyface.__init__   s4  øøøø€ ØˆŒØˆŒØˆŒ	ØˆŒ	å�‰:Œ:�ÒÐØˆDŒGõ �4‰yŒy˜AŠ~ˆ~à# Aœwœ}��Q””Ø! !œWœ]¨QÑ.�”
Ø" 1œgœn�”�å�T‘”˜a’�à˜”G”M�à�Q”�” Ñ!�”Ø�Q”�” Ñ!�”à�Q”�” Ñ!�”Ø�Q”�” Ñ!�”à+,¨q©5Ð0�”
˜Tœ[ð ð %ð %�Ø $�”�à ˆDŒMˆMˆMå�$‰ZŒZ�5Ò Ð ð ˆDŒGà#'¨¤7Ñ ˆC�˜Ø�AŒwð 'Ø'+¨A¤wÑ$��U˜HØ# H¨Q¤KÔ0°5¸À!¼Ô3EÑEÈÑL�”
Ø$ X¨a¤[Ô1°E¸(À1¼+Ô4FÑFÈ#ÑM�”�à" 1œX�”
Ø# Aœh�”àˆDŒMˆMˆMð ”|Ô-Ô4Ô9ˆHØAÐAÐAÐA¨tÔ/@ÐAÑAÔAˆDŒGð GÐFÐFÐF¸¼ÐFÑFÔFˆCå�4”7‰|Œ|˜qÒ Ð Ø" 1œv¨¨A¬™Ô6¸#¸a¼&À3ÀqÄ6¹/Ô9QÑQÐUXÑX�”
Ø # A¤¨¨Q¬¡Ô7¸3¸q¼6ÀCÈÄF¹?Ô:RÑRÐVYÑY�”‘ð ”[�Ø×*Ò*­9Ô+;¸OÑ+LÔ+LÑMÔM�Ø4Ð4Ð4Ð4°Ð4Ñ4Ô4�å!Ô*×5Ò5°fÑ=Ô=�åÔ&×/Ò/°°qÑ9Ô9�Ø6Ð6Ð6Ð6¨vÐ6Ñ6Ô6�Ø,Ð, VÐ,Ñ,Ô,�Ø,Ð, VÐ,Ñ,Ô,�å˜2‘w”w�Ý˜2‘w”w�Ý˜2‘w”w�Ý˜2‘w”w�à˜t™�Ø˜t™�à"�”
Ø#�”ð ˜9Ò$Ð$¨°	Ò(9Ð(9Ý"¥3 v¡;¤;Ñ/Ô/ð 3ð 3˜Ø(2˜œ œ
 1 1 1™˜ð3õ "+¨6Ñ!2Ô!2ð ð ™˜˜2àœT D™[¨EÑ1ØœT D™[¨EÑ1ð)˜œ œ
 1 1 1™˜ð
 ˆDŒMˆMˆMr   c                 ól  — | j         rOt          | j         ¦  «        dk    r7| j         d         | j         d         | j         d         | j         d         f| _         | j        | j        c| _        | _        | j        | j        c| _        | _        | j         | _        | j        D ]}|                     ¦   «          Œd S )Nr   r   r   r   r   )	r   r4   r   r   r   r
   r   r	   Úspin)rF   rH   s     r   r]   zprettyface.spin€   s¤   € ØŒ7ð 	E•s˜4œ7‘|”| qÒ(Ð(Ø”g˜a”j $¤'¨!¤*¨d¬g°a¬j¸$¼'À!¼*ÐDˆDŒGà"&¤+¨t¬zÐˆŒ
�D”KØ#œy¨$¬)ÐˆŒ	�4”9Ø”x�<ˆŒà”-ð 	ð 	ˆBØ�GŠG‰IŒIˆIˆIð	ð 	r   c           	      óö  ‡ ‡‡— ddl mŠ |‰ j        z  }|‰ j        z  }‰ j        D ]}|                     ||||||¦  «         Œ‰ j        }|sd S |}	|}
|‰ j        z   }|‰ j        z   }|	|z  |z   }	||z  |z
  }|
|z  |z   }
||z  |z
  }t          |¦  «        dk    rgˆfd„Šˆˆ fd„}|d         d         } |||	|
f|	||z
  f||z
  |
f¦  «         |d         r*|d         d         } ||||f||
|z   f|	|z   |f¦  «         d S d S t          |¦  «        dk    r>|	|
f|d         d d …<   |	|f|d         d d …<   ||f|d         d d …<   ||
f|d         d d …<   d S ||	z
  }||
z
  }|D ]}|\  }}|	||z  z   |
||z  z   f|d d …<   Œd S )	Nr   )Úpir   c                 óš   •— || z
                        || z
  ‰¦  «        }| |z
                        ||z
  ‰¦  «        }‰||z   z
  }|df|df|dfgS )Nr   r   r   )rR   )Úv1Úv2Úv3Úa1Úa2Úa3r_   s         €r   Úget_tri_anglesz(prettyface.place.<locals>.get_tri_angles¦   s_   ø€ Ø˜2‘g—_’_ R¨"¡W¨bÑ1Ô1�Ø˜2‘g—_’_ R¨"¡W¨bÑ1Ô1�Ø˜2 ™7‘^�à˜Q˜ " a ¨2¨q¨'Ð2Ð2r   c                 óÀ  •‡ ‡—  ‰ˆ fd„‰ j         D ¦   «         Ž }|                     ¦   «          d„ |D ¦   «         }‰ j        j        j        j        Šˆfd„‰ j        D ¦   «         }‰	j        r;|||d                  d d …<   |||d                  d d …<   |||d                  d d …<   d S |||d                  d d …<   |||d                  d d …<   |||d                  d d …<   d S )Nc                 ó>   •— g | ]}‰j         j        |         j        ‘ŒS r   r   ©r   r#   Úfs     €r   r   z4prettyface.place.<locals>.set_uv.<locals>.<listcomp>µ   s&   ø€ Ð,ZÐ,ZÐ,ZÈ!¨Q¬YÔ-?ÀÔ-BÔ-EÐ,ZÐ,ZÐ,Zr   c                 ó   — g | ]\  }}|‘ŒS r   r   )r   Úar   s      r   r   z4prettyface.place.<locals>.set_uv.<locals>.<listcomp>¸   s   € Ð-Ð-Ð-™4˜1˜a�QÐ-Ð-Ð-r   c                 ó*   •— g | ]}‰|         j         ‘ŒS r   r   r   s     €r   r   z4prettyface.place.<locals>.set_uv.<locals>.<listcomp>»   s   ø€ Ð>Ð>Ð>¨!�x ”{”~Ð>Ð>Ð>r   r   r   r   )r!   Úsortr    r6   r7   r$   r8   r   )
rk   Úp1Úp2Úp3Ú	angles_coÚIÚfuvr   rg   rF   s
   `      @€€r   Úset_uvz prettyface.place.<locals>.set_uv­   s  øøø€ ð +˜NÐ,ZÐ,ZÐ,ZÐ,ZÈqÌzÐ,ZÑ,ZÔ,ZÐ[�	à—’Ñ Ô Ð Ø-Ð- 9Ð-Ñ-Ô-�àœ9Ô.Ô5Ô:�Ø>Ð>Ð>Ð>¨q¬~Ð>Ñ>Ô>�à”8ð &Ø#%�C˜˜!œ”I˜a˜a˜a‘LØ#%�C˜˜!œ”I˜a˜a˜a‘LØ#%�C˜˜!œ”I˜a˜a˜a‘L�L�Là#%�C˜˜!œ”I˜a˜a˜a‘LØ#%�C˜˜!œ”I˜a˜a˜a‘LØ#%�C˜˜!œ”I˜a˜a˜a‘L�L�Lr   r   r   r   )
Úmathr_   r
   r   r	   Úplacer   r   r   r4   )rF   r
   r   ÚxfacÚyfacÚmargin_wÚmargin_hrH   r   Úx1Úy1Úx2Úy2rv   rk   rY   rZ   Úuvcor-   r1   rg   r_   s   `                   @@r   rx   zprettyface.place‹   st  øøø€ ØÐÐÐÐÐà�”	ÑˆØ�”	Ñˆà”-ð 	Að 	AˆBØ�HŠH�T˜4  t¨X°xÑ@Ô@Ð@Ð@àŒWˆØð 	ØˆFàˆØˆØ�D”JÑˆØ�D”KÑˆð �$‰Y˜Ñ!ˆØ�$‰Y˜Ñ!ˆØ�$‰Y˜Ñ!ˆØ�$‰Y˜Ñ!ˆõ ˆr‰7Œ7�aŠ<ˆ<ð3ð 3ð 3ð 3ð 3ð&ð &ð &ð &ð &ð &ð2 �1”�a”ˆAàˆF�1�r˜2�h  R¨(¡]Ð 3°b¸8±mÀRÐ5HÑIÔIÐIà�!Œuð NØ�q”E˜!”H�Ø��q˜2˜r˜( R¨¨h©Ð$7¸"¸x¹-ÈÐ9LÑMÔMÐMÐMÐMðNð Nõ
 �2‰wŒw˜!Š|ˆ|Ø˜r˜6��1”�a�a�a‘Ø˜r˜6��1”�a�a�a‘Ø˜r˜6��1”�a�a�a‘Ø˜r˜6��1”�a�a�a‘��ð ˜R™�Ø˜R™�Øð 3ð 3�DØ‘D�A�qØ " a¨%¡iÑ 0Ø " a¨%¡iÑ 0ð3�D˜˜˜‘G�Gð3ð 3r   c                 ó   — | j         | j        fS ©N©r   r   )rF   s    r   Ú__hash__zprettyface.__hash__Ý   s   € àŒz˜4œ;Ð&Ð&r   N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r[   r]   rx   r…   r   r   r   r   r   
   s_   € € € € € ð	€Iðhð hð hðT	ð 	ð 	ðP3ð P3ð P3ðd'ð 'ð 'ð 'ð 'r   r   TFé   é   c                 ó|  ‡D‡E— ddl }ddlm} | sdS |                      ¦   «         }|rg g}	ng }	| D ]“}
|rd„ |
j        D ¦   «         }n|
j        dd…         }|r|	d                              |¦  «         n|	                     |¦  «         |r|
j                             ¦   «          |
j        s|
j                             ¦   «          Œ”|	D �]¥}t          d¦  «         |sŒd„ |D ¦   «         }t          |¦  «        t          |¦  «        k    �rvd„ ŠEˆEfd„|D ¦   «         }‹Et          j                             t          |¦  «        ¦  «        }t          |¦  «        D ]H\  }\  }}}||d                  ||d	                  ||d
                  f}|                     ||¦  «         ŒI|                     ¦   «          dgt          |¦  «        z  ŠDd}d}t!          t          |¦  «        ¦  «        D �]—}‰D|         rŒ||         }|\  }}}||d                  ||d	                  ||d
                  f}d‰D|<   |                     |ˆDfd„¬¦  «        \  }}}|r|dk     r'|                     t%          |df¦  «        ¦  «          �n||         }|                     t%          ||f¦  «        ¦  «         |d	z   }d‰D|<   ||k     rÆˆDfd„|                     ||¦  «        D ¦   «         } t          | ¦  «        d	k    r‘t!          dt          | ¦  «        t          | ¦  «        d
z  z
  d
¦  «        D ]_}!|                     t%          || |!                  || |!d	z                     f¦  «        ¦  «         dx‰D| |!         <   ‰D| |!d	z            <   |d	z   }Œ`�Œ™d}"d}#d}$|D ]}|j        }%|%|"k    r|%}"|%|#k     r|%}#|$|%z  }$Œ ||"¦  «        }& ||#¦  «        }' ||$¦  «        }(|&})t          dd¬¦  «         g }*|)|'k    r-|*                     |)¦  «         |)dz  })|)dz  |(|z  k     rn|)|'k    °-|*s|*                     |)¦  «         i }+d	},t+          |*¦  «        D ]}-|,|+|-<   |,d
z  },Œt-          |+                     ¦   «         ¦  «        }+|+                     ¦   «          t          d¦  «         |D ]€}.|.j        }/|.j        }0d}1d}2d}3d}4|+D ]=\  }-}t7          |-|/z
  ¦  «        }5|5|1k     r|5}1|}3t7          |-|0z
  ¦  «        }5|5|2k     r|5}2|}4Œ>|3|._        |4|._        |3|4k    r|.                     ¦   «          Œ�t          d¦  «         t          dd¬¦  «         i }6i }7|D ]k}.|.j        |.j        }0}/|/|0k    r*|6                     |/g ¦  «                             |.¦  «         Œ@|7                     |/|0fg ¦  «                             |.¦  «         Œld}8|+d         d         }9|9dk    rt=          |(|9z  |z  ¦  «        }:d};nd}:d};|;�r1d};t-          |7                     ¦   «         ¦  «        D ]ù\  }5}<|5d	         |:k     rèt          |<¦  «        d
k    rÕd};|8d	z  }8t%          |<                     ¦   «         |<                     ¦   «         g¦  «        }=|                     |=¦  «         |=j        |=j        }0}/|/|0k    sJ ‚|/|0k    r*|6                     |/g ¦  «                             |=¦  «         n+|7                     |/|0fg ¦  «                             |=¦  «         t          |<¦  «        d
k    °ÕŒút-          |6                     ¦   «         ¦  «        D ]ï\  }5}<|5|:k     rä|<                     d„ ¬¦  «         t          |<¦  «        dk    rºd};|8d	z  }8t%          |<                     ¦   «         |<                     ¦   «         |<                     ¦   «         |<                     ¦   «         g¦  «        }=|                     |=¦  «         |=j        }/|6                     |/g ¦  «                             |=¦  «         t          |<¦  «        dk    °ºŒð|;�°1~6~7d„ |D ¦   «         }t          |¦  «        }d}5|r=|d	z  }||         }.|.j        |.j        k    r|5d	z  }5|5d
z  r|.                     ¦   «          |°=t          d |8d!¦  «         t          d"t          |¦  «        d#¬¦  «         d$„ t          |¦  «        D ¦   «         }>t          j          !                    |>¦  «        \  }?}@tE          |?¦  «        }?tE          |@¦  «        }@|?|z  |?z  }A|@|z  |@z  }Bt          d¦  «         t          d%d¬¦  «         t          |>¦  «        D ]1\  }}C||          #                    |Cd         |Cd	         |?|@|A|B¦  «         Œ2t          d¦  «         �Œ§| D ]}
|
 $                    ¦   «          Œt          d& %                    |                      ¦   «         |z
  ¦  «        ¦  «         dS )'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)Úsqrtc                 ó    — g | ]}|j         ¯	|‘ŒS r   )Úselect©r   rk   s     r   r   z#lightmap_uvpack.<locals>.<listcomp>ÿ   s   € Ð8Ð8Ð8˜1¨q¬xÐ8�QÐ8Ð8Ð8r   z
Starting unwrapc                 óB   — g | ]}|j         d k    ¯t          |¦  «        ‘ŒS )r   )Ú
loop_totalr   r�   s     r   r   z#lightmap_uvpack.<locals>.<listcomp>  s*   € ÐMÐMÐM¨!¸1¼<È1Ò;LÐ;L�
 1™œÐ;LÐ;LÐ;Lr   c                 óŒ  ‡ — ˆ fd„‰ j         D ¦   «         }|d         |d         z
  j        |d         |d         z
  j        |d         |d         z
  j        g}|                     t          |¦  «        ¦  «        }|                     t	          |¦  «        ¦  «        }t          d¦  «        D ]}||k    r
||k    r|} nŒ|||f}‰ ||fS )Nc                 ó>   •— g | ]}‰j         j        |         j        ‘ŒS r   r   rj   s     €r   r   z4lightmap_uvpack.<locals>.trylens.<locals>.<listcomp>   s&   ø€ ÐDÐDÐD°A�q”yÔ)¨!Ô,Ô/ÐDÐDÐDr   r   r   r   r   )r!   r9   ÚindexrB   rC   rD   )rk   rO   ÚlensÚlens_minÚlens_maxr   Úlens_midÚ
lens_orders   `       r   Útrylensz lightmap_uvpack.<locals>.trylens  sÖ   ø€ ð EÐDÐDÐD¸¼ÐDÑDÔD�à˜Qœ # a¤&™Ô0°3°q´6¸CÀ¼F±?Ô2JÈSÐQRÌVÐVYÐZ[ÔV\É_ÔLdÐe�àŸ:š:¥c¨$¡i¤iÑ0Ô0�ØŸ:š:¥c¨$¡i¤iÑ0Ô0�Ý˜q™œð ð �AØ˜H’}�}¨¨hª¨Ø#$˜Ø˜øØ% x°Ð9�
à˜$ 
Ð*Ð*r   c                 ó<   •— g | ]}|j         d k    ¯ ‰|¦  «        ‘ŒS )r   )r’   )r   rk   r›   s     €r   r   z#lightmap_uvpack.<locals>.<listcomp>.  s-   ø€ ÐMÐMÐM¨!¸1¼<È1Ò;LÐ;L˜7˜7 1™:œ:Ð;LÐ;LÐ;Lr   r   r   Fgñhãˆµøä>Tc                 ó   •— ‰|           S rƒ   r   )ÚidxÚ	added_idss    €r   ú<lambda>z!lightmap_uvpack.<locals>.<lambda>G  s   ø€ ÈiÐX[ÌnÐJ\€ r   )Úfilterc                 ó,   •— g | ]\  }}}‰|         °|‘ŒS r   r   )r   Ú_rž   rŸ   s      €r   r   z#lightmap_uvpack.<locals>.<listcomp>S  s9   ø€ ð 'ð 'ð 'Ù )  3¨Ø(¨œ~ð'Øð'ð 'ð 'r   r%   g    „×—Az	Generating lengths...Ú )Úendr   g      @Údoneg    eÍÍAz...donez	Consolidating Boxes...c                 ó*   — t          | j        ¦  «        S rƒ   )r4   r	   )rm   s    r   r    z!lightmap_uvpack.<locals>.<lambda>í  s   € ­S°´©_¬_€ r   )Úkeyr   c                 ó    — g | ]}|j         °	|‘ŒS r   )r   )r   rH   s     r   r   z#lightmap_uvpack.<locals>.<listcomp>þ  s   € ÐGÐGÐG˜r¸¼ÐG˜ÐGÐGÐGr   ÚConsolidatedzboxes, donez	Packing Boxesz...c                 ó6   — g | ]\  }}d d |j         |j        |g‘ŒS )r%   r„   )r   r   rH   s      r   r   z#lightmap_uvpack.<locals>.<listcomp>  s+   € Ð^Ð^Ð^¹U¸QÀ�s˜C ¤¨2¬9°aÐ8Ð^Ð^Ð^r   z	writing back UVszfinished all {:.2f} )&Útimerw   r�   ÚpolygonsÚextendÚappendr6   ÚnewÚprintr4   r<   ÚkdtreeÚKDTreerE   ÚinsertÚbalancerD   Úfindr   Ú
find_rangeÚareaÚreversedr3   Úitemsro   r   r   Úabsr]   Ú
setdefaultÚintÚpopr>   Úbox_pack_2dÚfloatrx   ÚupdateÚformat)FÚmeshesÚPREF_SEL_ONLYÚPREF_NEW_UVLAYERÚPREF_PACK_IN_ONEÚPREF_BOX_DIVÚPREF_MARGIN_DIVr¬   r�   ÚtÚface_groupsÚmeÚfacesÚface_selÚpretty_facesÚtri_lengthsÚkdr   rk   r–   ÚoÚvectorÚpairs_addedÚtri_equality_thresholdÚtri1Úf1rJ   Úlo1Úsorted_lÚvecÚnearestÚdistÚtri2Úcluster_tri_idsÚciÚmax_areaÚmin_areaÚtot_arear¸   Úmax_lenÚmin_lenÚside_lenÚcurr_lenÚlengthsÚlengths_to_intsÚl_intÚlrH   ÚwÚhÚ
bestw_diffÚ
besth_diffÚnew_wÚnew_hrG   Ú	even_dictÚodd_dictÚcÚfloat_to_int_factorÚmax_int_dimensionÚokÚboxesÚ	pf_parentÚ
boxes2PackÚ	packWidthÚ
packHeightr{   r|   ÚboxrŸ   r›   sF                                                                       @@r   Úlightmap_uvpackrü   â   si  øø€ ð €K€K€KØÐÐÐÐÐàð Øˆà�	Š	‰Œ€Aàð Ø�dˆˆàˆàð ð ˆØð 	#Ø8Ð8 ¤Ð8Ñ8Ô8ˆEˆEà”K   ”NˆEàð 	&Ø˜ŒN×!Ò! %Ñ(Ô(Ð(Ð(à×Ò˜uÑ%Ô%Ð%àð 	ØŒL×ÒÑÔÐð Œ|ð 	ØŒL×ÒÑÔÐøàð Uñ UˆÝÐ!Ñ"Ô"Ð"àð 	ØàMÐM¨xÐMÑMÔMˆõ ˆ|ÑÔ¥ H¡¤Ò-Ñ-ð+ð +ð +ð$ NÐMÐMÐM¨xÐMÑMÔMˆKØõ Ô!×(Ò(­¨[Ñ)9Ô)9Ñ:Ô:ˆBÝ#,¨[Ñ#9Ô#9ð %ð %‘�‘<�A�t˜QØ˜q œtœ* d¨1¨Q¬4¤j°$°q¸´t´*Ð=�Ø—	’	˜& !Ñ$Ô$Ð$Ð$Ø�JŠJ‰LŒLˆLà˜¥# kÑ"2Ô"2Ñ2ˆIØˆKØ%,Ð"Ý�3˜{Ñ+Ô+Ñ,Ô,ð :ñ :�Ø˜Q”<ð ØØ" 1”~�Ø!%‘��E˜3à! # a¤&œM¨5°°Q´¬=¸%ÀÀAÄ¼-ÐH�Ø#�	˜!‘Ø%'§W¢W¨XÐ>\Ð>\Ð>\Ð>\ WÑ%]Ô%]Ñ"��W˜dØð  '¨A¢+ +Ø ×'Ò'­
°D¸$°<Ñ(@Ô(@ÑAÔAÐAØ‘EØ" 7Ô+�Ø×#Ò#¥J°°d¨|Ñ$<Ô$<Ñ=Ô=Ð=Ø)¨A™o�Ø%)�	˜'Ñ"ð Ð0Ò0Ð0ð'ð 'ð 'ð 'Ø-/¯]ª]¸8ÐE[Ñ-\Ô-\ð'ñ 'ô '�Oõ
 ˜?Ñ+Ô+¨aÒ/Ð/Ý"'¨­3¨Ñ+?Ô+?Å3ÀÑCWÔCWÐZ[ÑC[Ñ+\Ð^_Ñ"`Ô"`ð :ð :˜BØ(×/Ò/Ý *¨K¸ÈÔ8KÔ,LÈkÐZiÐjlÐopÑjpÔZqÔNrÐ+sÑ tÔ tñô ð ð cgÐf˜I o°bÔ&9Ñ:¸YÀÐWYÐ\]ÑW]ÔG^Ñ=_Ø*5¸©/˜K˜Kùð ˆØˆØˆØð 	ð 	ˆAØ”6ˆDØ�hŠˆØ�Ø�hŠˆØ�Ø˜ÑˆHˆHà�$�x‘.”.ˆØ�$�x‘.”.ˆØ�4˜‘>”>ˆð ˆåÐ'¨RÐ0Ñ0Ô0Ð0àˆØ˜Ò Ð Ø�NŠN˜8Ñ$Ô$Ð$Ø #‘~ˆHð
 ˜#‰~ ¨?Ñ :Ò:Ð:Øð ˜Ò Ð ð ð 	%Ø�NŠN˜8Ñ$Ô$Ð$ð ˆàˆÝ˜'Ñ"Ô"ð 	ð 	ˆAØ!&ˆO˜AÑØ�Q‰JˆEˆEå˜×4Ò4Ñ6Ô6Ñ7Ô7ˆØ×ÒÑÔÐÝˆf‰Œˆð ð 	ð 	ˆBØ”ˆAØ”	ˆAØ%ˆJØ%ˆJØˆEØˆEØ'ð 	ð 	‘��1Ý˜˜A™‘J”J�Ø�z’>�>Ø!"�JØ�Eå˜˜A™‘J”J�Ø�z’>�>Ø!"�JØ�EøàˆBŒHØˆBŒIà�uŠ}ˆ}Ø—’‘	”	�	øåˆiÑÔÐõ 	Ð(¨bÐ1Ñ1Ô1Ð1Øˆ	Øˆàð 	;ð 	;ˆBØ”8˜RœYˆqˆAØ�AŠvˆvØ×$Ò$ Q¨Ñ+Ô+×2Ò2°2Ñ6Ô6Ð6Ð6à×#Ò# Q¨ F¨BÑ/Ô/×6Ò6°rÑ:Ô:Ð:Ð:ð ˆð .¨aÔ0°Ô3ÐØ Ò"Ð"Ý # hÐ1DÑ&DÈÑ$UÑ VÔ VÐØˆBˆBà #ÐØˆBð ñ #	FØˆBõ ! §¢Ñ!1Ô!1Ñ2Ô2ð Nð N‘��5Ø�Q”4Ð+Ò+Ð+å˜e™*œ*¨š/˜/à!˜Ø˜Q™˜Ý$.°·	²	±´¸U¿YºY¹[¼[Ð/IÑ$JÔ$J˜	Ø$×+Ò+¨IÑ6Ô6Ð6à(œ°	Ô0@˜1˜Ø  Ašv˜v˜v˜và š6˜6Ø%×0Ò0°°BÑ7Ô7×>Ò>¸yÑIÔIÐIÐIà$×/Ò/°°A°¸Ñ;Ô;×BÒBÀ9ÑMÔMÐMõ ˜e™*œ*¨š/˜/øõ  ! §¢Ñ!2Ô!2Ñ3Ô3ð Fð F‘��5ØÐ(Ò(Ð(Ø—J’JÐ#<Ð#<�JÑ=Ô=Ð=å˜e™*œ*¨š/˜/à!˜Ø˜Q™˜å$.°·	²	±´¸U¿YºY¹[¼[È%Ï)Ê)É+Ì+ÐW\×W`ÒW`ÑWbÔWbÐ/cÑ$dÔ$d˜	Ø$×+Ò+¨IÑ6Ô6Ð6Ø%œO˜Ø!×,Ò,¨Q°Ñ3Ô3×:Ò:¸9ÑEÔEÐEõ ˜e™*œ*¨š/˜/øð7 ñ #	FðJ Øð HÐG \ÐGÑGÔGˆõ �ÑÔˆØˆØð 	Ø�‰FˆAØ˜a”ˆBØŒx˜2œ9Ò$Ð$Ø�Q‘�Ø�q‘5ð Ø—G’G‘I”I�Ið ð 	õ 	ˆn˜a Ñ/Ô/Ð/õ 	Ð¥ \Ñ!2Ô!2¸Ð>Ñ>Ô>Ð>Ø^Ð^ÅiÐP\ÑF]ÔF]Ð^Ñ^Ô^ˆ
Ý )Ô 2× >Ò >¸zÑ JÔ JÑˆ	�:õ ˜)Ñ$Ô$ˆ	Ý˜:Ñ&Ô&ˆ
à /Ñ1°YÑ>ˆØ ?Ñ2°jÑ@ˆõ 	ˆf‰Œˆõ 	Ð"¨Ð+Ñ+Ô+Ð+Ý 
Ñ+Ô+ð 	]ð 	]‰FˆAˆsØ˜ŒO×!Ò! # a¤&¨#¨a¬&°)¸ZÈÐS[Ñ\Ô\Ð\Ð\åˆf‰Œˆ‰àð ð ˆØ
�	Š	‰Œˆˆå	Ð
 ×
'Ò
'¨¯	ª	©¬°a©Ñ
8Ô
8Ñ9Ô9Ð9Ð9Ð9r   c                 ó~  ‡— |j         o|j         j        dk    }|r.|j        }t          j        j                              dd¬¦  «         n|j        }t          ˆfd„|D ¦   «         ¦  «        }|s|                      dhd¦  «         dhS t          |fi |¤Ž |r&t          j        j                              dd¬¦  «         d	hS )
NÚEDITÚOBJECTF)ÚmodeÚtogglec                 óT   •— h | ]$}|j         d k    ¯|j        xŠj        ¯‰j        ¯"‰’Œ%S )ÚMESH)r2   r$   r­   Úis_editable)r   ÚobjrË   s     €r   ú	<setcomp>zunwrap.<locals>.<setcomp>7  sK   ø€ ð ð ð ØØŒ8�vÒÐØ”(ˆNˆBÔ$ð Ø)+¬ð ð 	ØÐÐr   ÚERRORzNo mesh objectÚ	CANCELLEDÚFINISHED)
Úobjectr   Úobjects_in_mode_unique_dataÚbpyÚopsÚmode_setÚselected_objectsr3   Úreportrü   )ÚoperatorÚcontextÚkwargsÚis_editmodeÚobjectsrÃ   rË   s         @r   Úunwrapr  -  sö   ø€ à”.ÐB W¤^Ô%8¸FÒ%B€KØð +ØÔ5ˆÝŒŒ×Ò X°eÐÑ<Ô<Ð<Ð<àÔ*ˆõ ð ð ð ð Øðñ ô ñ ô €Fð ð Ø�Š˜˜	Ð#3Ñ4Ô4Ð4Øˆ}Ðå�FÐ%Ð%˜fÐ%Ð%Ð%ð ð ;ÝŒŒ×Ò V°EÐÑ:Ô:Ð:àˆ<Ðr   )ÚBoolPropertyÚFloatPropertyÚIntPropertyc                   ó  — e Zd ZU dZdZdZdhZej         	                    dd¬¦  «        e
d<    ed	d
d¬¦  «        e
d<    eddd¬¦  «        e
d<    eddddd¬¦  «        e
d<    eddddd¬¦  «        e
d<   d„ Zed „ ¦   «         Zd!„ Zd"„ Zd#S )$ÚLightMapPackz'Pack each face's UVs into the UV boundszuv.lightmap_packzLightmap PackÚUNDOÚ	Selection))Ú	SEL_FACESzSelected FaceszSpace all UVs evenly)Ú	ALL_FACESz	All Facesz*Average space UVs edge length of each loop)Ú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"  rB   rC   r#  rÇ   ÚMarginz*Size of the margin as a division of the UVgü©ñÒMbP?r&   gš™™™™™¹?rÈ   c                 ó0  — | j         }d|_        d|_        |j        j        dk    }|r|                     | d¦  «         |                     | d¦  «         |                     | d¦  «         |                     | d¦  «         |                     | d¦  «         d S )	NTFrþ   r!  rÆ   rÅ   rÇ   rÈ   )ÚlayoutÚuse_property_splitÚuse_property_decorateÚactive_objectr   Úprop)rF   r  r(  r  s       r   ÚdrawzLightMapPack.drawƒ  sž   € Ø”ˆØ$(ˆÔ!Ø',ˆÔ$àÔ+Ô0°FÒ:ˆØð 	.Ø�KŠK˜˜nÑ-Ô-Ð-à�Š�DÐ,Ñ-Ô-Ð-Ø�Š�DÐ,Ñ-Ô-Ð-Ø�Š�D˜.Ñ)Ô)Ð)Ø�Š�DÐ+Ñ,Ô,Ð,Ð,Ð,r   c                 ó*   — |j         }|o
|j        dk    S )Nr  )r+  r2   )Úclsr  Úobs      r   ÚpollzLightMapPack.poll‘  s   € àÔ"ˆØÐ'�b”g Ò'Ð'r   c                 ó*  — |                       ¦   «         }|                     d¦  «        }|j        j        dk    }|sd|d<   n'|dk    rd|d<   n|dk    rd|d<   nt	          d¦  «        ‚t          d	|d
         dz  z  ¦  «        |d
<   t          | |fi |¤ŽS )Nr!  rþ   FrÄ   r  Tr  zinvalid contextr&   rÈ   g      Y@)Úas_keywordsr¾   r+  r   Ú	Exceptionr½   r  )rF   r  r  r!  r  s        r   ÚexecutezLightMapPack.execute–  sÃ   € Ø×!Ò!Ñ#Ô#ˆØ—z’z .Ñ1Ô1ˆàÔ+Ô0°FÒ:ˆàð 	/Ø&+ˆF�?Ñ#Ð#Ø˜[Ò(Ð(Ø&*ˆF�?Ñ#Ð#Ø˜[Ò(Ð(Ø&+ˆF�?Ñ#Ð#åÐ-Ñ.Ô.Ð.å$'¨¨vÐ6GÔ/HÈ5Ñ/PÑ(QÑ$RÔ$RˆÐ Ñ!å�d˜GÐ.Ð. vÐ.Ð.Ð.r   c                 ó:   — |j         }|                     | ¦  «        S rƒ   )Úwindow_managerÚinvoke_props_dialog)rF   r  Ú_eventÚwms       r   ÚinvokezLightMapPack.invoke©  s   € ØÔ#ˆØ×%Ò% dÑ+Ô+Ð+r   N)r†   r‡   rˆ   Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsr  ÚpropsÚEnumPropertyÚ__annotations__r  r  r  r-  Úclassmethodr1  r5  r;  r   r   r   r  r  M  ss  € € € € € € Ø1Ð1Ø"€IØ€Hð �€Jà”)×(Ò(Øð
ð )ñ ô ð ð ñ ð #�lØ"ð#ð ðñ ô ð ð ñ ð #�lØØ?Øðñ ô ð ð ñ ð �+Øð@ð �2Øðñ ô ð ð ñ ð #�]ØØ@Ø�sØð	ñ ô ð ð ñ ð-ð -ð -ð ð(ð (ñ „[ð(ð/ð /ð /ð&,ð ,ð ,ð ,ð ,r   r  )TFFrŠ   r‹   )r  Ú	bpy.typesr   r<   r   rü   r  Ú	bpy.propsr  r  r  r  Úclassesr   r   r   ú<module>rG     sû   ðð
 €
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð ðU'ð U'ð U'ð U'ð U'ñ U'ô U'ð U'ðt ØØØØðH:ð H:ð H:ð H:ðV
ð ð ð: ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð^,ð ^,ð ^,ð ^,ð ^,�8ñ ^,ô ^,ð ^,ðD ð€€€r   