§
    ¡)ýf‡†  ã            
       ó�  — d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z
 d„ Zd„ Zd„ Zd	„ Zd
„ Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zeeeeeeeeeef
ZdS )é    N)ÚOperator)ÚFloatProperty)ÚVectorÚMatrix)Úpgettext_rptc                 ó¬   — |rt           j        j        n| j        g}|D ]5}|j        D ]+}|j        |k    r|j        D ]}	|	j        |k    r	 ||	g|¢R Ž  ŒŒ,Œ6d S ©N)ÚbpyÚdataÚscreensÚscreenÚareasÚtypeÚspaces)
ÚcontextÚall_screensÚtareaÚtspaceÚcallbackÚargsr   r   ÚareaÚspaces
             úW/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/clip.pyÚCLIP_spaces_walkr      s�   € Ø"-ÐC�cŒhÔÐ°G´NÐ3C€Gàð /ð /ˆØ”Lð 	/ð 	/ˆDØŒy˜EÒ!Ð!Ø!œ[ð /ð /�EØ”z VÒ+Ð+Ø ˜ Ð.¨Ð.Ð.Ð.Ð.øøð		/ð/ð /ó    c                 ór   ‡— d„ Šˆfd„}| j         j        }|r|j        dk    rd S  ||j        ||¦  «         d S )Nc                 óÖ   — | j         dk    r,t          d„ | j        | j        | j        fD ¦   «         ¦  «         S | j         dk    r&t          d„ | j        | j        fD ¦   «         ¦  «         S dS )NÚ
POLYNOMIALc              3   ó"   K  — | ]
}|d k    V — ŒdS ©r   N© ©Ú.0Úks     r   ú	<genexpr>zTCLIP_set_viewport_background.<locals>.check_camera_has_distortion.<locals>.<genexpr>   s>   è è € ð Að A a˜1 š6ð Að Að Að Að Að Ar   ÚDIVISIONc              3   ó"   K  — | ]
}|d k    V — ŒdS r    r!   r"   s     r   r%   zTCLIP_set_viewport_background.<locals>.check_camera_has_distortion.<locals>.<genexpr>"   s>   è è € ð Jð J a˜1 š6ð Jð Jð Jð Jð Jð Jr   F)Údistortion_modelÚallÚk1Úk2Úk3Údivision_k1Údivision_k2)Útracking_cameras    r   Úcheck_camera_has_distortionzACLIP_set_viewport_background.<locals>.check_camera_has_distortion   s¿   € ØÔ+¨|Ò;Ð;Ýð Að A¨OÔ,>Ø,;Ô,>Ø,;Ô,>ð,@ð Añ Aô Añ Aô Að Að Að Ô-°Ò;Ð;Ýð Jð J¨OÔ,GØ,;Ô,Gð,Ið Jñ Jô Jñ Jô Jð Jð Jàˆur   c                 ó  •— d }| j         D ]}|j        dk    r|} nŒ|s| j                              ¦   «         }d|_        ||_        |j        |j        _         ‰|j        j        ¦  «        rd|j        _        d|_	        d| _
        d S )NÚ
MOVIE_CLIPTF)Úbackground_imagesÚsourceÚnewÚclipÚproxy_render_sizeÚ	clip_userÚtrackingÚcameraÚuse_render_undistortedÚuse_camera_clipÚshow_background_images)Úcamr6   ÚuserÚbgpicÚxr0   s        €r   Úset_backgroundz4CLIP_set_viewport_background.<locals>.set_background&   s§   ø€ ØˆàÔ&ð 	ð 	ˆAØŒx˜<Ò'Ð'Ø�Ø�ð (ð ð 	0ØÔ)×-Ò-Ñ/Ô/ˆEà#ˆŒØˆŒ
Ø,0Ô,BˆŒÔ)Ø&Ð& t¤}Ô';Ñ<Ô<ð 	:Ø59ˆEŒOÔ2Ø %ˆÔà%)ˆÔ"Ð"Ð"r   ÚCAMERA)Úscener:   r   r   )r   r6   r8   rB   Úscene_camerar0   s        @r   ÚCLIP_set_viewport_backgroundrF      sn   ø€ ðð ð ð*ð *ð *ð *ð *ð( ”=Ô'€LØð ˜lÔ/°8Ò;Ð;ØˆØ€N�<Ô$ d¨IÑ6Ô6Ð6Ð6Ð6r   c                 ó¸   — | j         }|j        }|j        D ]C}|j        dk    r6|j        D ].}|j        dk    r!|j        r|j        n|j        }||k    r|c c S Œ/ŒD|S )NrC   ÚCAMERA_SOLVER)rD   r:   Úobjectsr   ÚconstraintsÚuse_active_clipÚactive_clipr6   )r   r6   rD   r:   ÚobÚconÚcur_clips          r   ÚCLIP_camera_for_cliprP   @   s‚   € ØŒM€EØŒ\€FàŒmð "ð "ˆØŒ7�hÒÐØ”~ð "ð "�Ø”8˜Ò.Ð.Ø47Ô4GÐU˜uÔ0Ð0ÈSÌX�Hà 4Ò'Ð'Ø!˜	˜	˜	˜	˜	øøà€Mr   c                 óX   — |j         rdS | j        r	|j        rdS | j        r	|j        rdS dS )NTF)Úselect_anchorÚshow_marker_patternÚselect_patternÚshow_marker_searchÚselect_search)ÚscÚtracks     r   ÚCLIP_track_view_selectedrY   P   sK   € ØÔð Øˆtà	Ôð  %Ô"6ð Øˆtà	Ôð  Ô!4ð Øˆtàˆ5r   c                 óT  — | j         j        }| j        d         }| j        d         }|j                             |d¬¦  «        }|j        }t          |d         ¦  «        t          |d         ¦  «        z
  }|j        |j        z
  }	|d         |z  |d<   |d         |z  |d<   |	d         |z  |	d<   |	d         |z  |	d<   |j	        |_
        t          t          |d         |d         ¦  «        ¦  «        |_        t          t          |	d         |	d         ¦  «        ¦  «        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_        |j        |_         |j!        |_"        |j#        |_$        d S )Nr   é   F©Úexact)%r9   ÚsettingsÚsizeÚmarkersÚ
find_frameÚpattern_bound_boxr   Ú
search_maxÚ
search_minÚcorrelation_minÚdefault_correlation_minÚintÚmaxÚdefault_pattern_sizeÚdefault_search_sizeÚframes_limitÚdefault_frames_limitÚpattern_matchÚdefault_pattern_matchÚmarginÚdefault_marginÚmotion_modelÚdefault_motion_modelÚ	use_bruteÚuse_default_bruteÚuse_normalizationÚuse_default_normalizationÚuse_maskÚuse_default_maskÚuse_red_channelÚuse_default_red_channelÚuse_green_channelÚuse_default_green_channelÚuse_blue_channelÚuse_default_blue_channelÚweightÚdefault_weight)
r6   rX   Úframenrr^   ÚwidthÚheightÚmarkerÚ
pattern_bbÚpatternÚsearchs
             r   Ú CLIP_default_settings_from_trackrˆ   ]   sˆ  € ØŒ}Ô%€HàŒI�aŒL€EØŒY�qŒ\€FàŒ]×%Ò% g°UÐ%Ñ;Ô;€FØÔ)€Jå�Z ”]Ñ#Ô#¥f¨Z¸¬]Ñ&;Ô&;Ñ;€GØÔ Ô!2Ñ2€Fà˜”˜eÑ#€GˆA�JØ˜”˜fÑ$€GˆA�Jà�q”	˜EÑ!€Fˆ1�IØ�q”	˜FÑ"€Fˆ1�Ià',Ô'<€HÔ$Ý$'­¨G°A¬J¸À¼
Ñ(CÔ(CÑ$DÔ$D€HÔ!Ý#&¥s¨6°!¬9°f¸Q´iÑ'@Ô'@Ñ#AÔ#A€HÔ Ø$)Ô$6€HÔ!Ø%*Ô%8€HÔ"Ø#œl€HÔØ$)Ô$6€HÔ!Ø!&¤€HÔØ).Ô)@€HÔ&Ø %¤€HÔØ',Ô'<€HÔ$Ø).Ô)@€HÔ&Ø(-Ô(>€HÔ%Ø#œl€HÔÐÐr   c                   óx   — e Zd ZU dZdZdZddhZ eddd¬	¦  «        ed
<   e	d„ ¦   «         Z
ed„ ¦   «         Zd„ ZdS )ÚCLIP_OT_filter_tracksz?Filter tracks which has weirdly looking spikes in motion curveszFilter Trackszclip.filter_tracksÚUNDOÚREGISTERzTrack Thresholdz-Filter Threshold to select problematic tracksg      @)ÚnameÚdescriptionÚdefaultÚtrack_thresholdc                 ó„  ‡‡— d„ Šˆfd„}| j         }|j        }|j        }| j        j        }|j        d d …         }t          j        j                             dd¬¦  «         t          ¦   «         }t          ||dz   ¦  «        D ]¤Šˆfd„|j        j        D ¦   «         }	|	sŒt          d¦  «        }
|	D ]}d	|_        |
 |||‰¦  «        z  }
Œt          |	¦  «        dk    r|
t          |	¦  «        z  }
|	D ]4} |||‰¦  «        }|
|z
  j        }||k    r|                     |¦  «         Œ5Œ¥|D ]	}d
|_        Œ
t          |¦  «        S )Nc                 ó¨   — |j                              |¦  «        }t          |j        d         | d         z  |j        d         | d         z  f¦  «        S )Nr   r[   )r`   ra   r   Úco)Ú	clip_sizerX   Úframe_numberr„   s       r   Ú get_marker_coordinates_in_pixelszNCLIP_OT_filter_tracks._filter_values.<locals>.get_marker_coordinates_in_pixelsŽ   sI   € Ø”]×-Ò-¨lÑ;Ô;ˆFÝ˜6œ9 Qœ<¨)°A¬,Ñ6¸¼	À!¼ÀyÐQRÄ|Ñ8SÐTÑUÔUÐUr   c                 óH   •—  ‰| ||¦  «        } ‰| ||dz
  ¦  «        }||z
  S )Nr[   r!   )r”   rX   ÚframeÚmarker_aÚmarker_br–   s        €r   Úmarker_velocityz=CLIP_OT_filter_tracks._filter_values.<locals>.marker_velocity’   s;   ø€ Ø7Ð7¸	À5È%ÑPÔPˆHØ7Ð7¸	À5È%ÐRSÉ)ÑTÔTˆHØ˜hÑ&Ð&r   é
   ÚDELETE_TRACK)ÚframesÚactionr[   c                 ó‚   •— g | ];}|j                              ‰¦  «        ¯|j                              ‰d z
  ¦  «        ¯9|‘Œ<S )r[   )r`   ra   )r#   rX   r˜   s     €r   ú
<listcomp>z8CLIP_OT_filter_tracks._filter_values.<locals>.<listcomp>¤   s]   ø€ ð ð ð ØØ”M×,Ò,¨UÑ3Ô3ðð ”M×,Ò,¨U°Q©YÑ7Ô7ðØðð ð r   )ç        r¢   FT)rD   Úframe_startÚ	frame_endÚ
space_datar6   r_   r
   ÚopsÚclean_tracksÚsetÚranger9   Útracksr   ÚselectÚlenÚlengthÚadd)r   Ú	thresholdr›   rD   r£   r¤   r6   r”   Útracks_to_cleanÚrelevant_tracksÚaverage_velocityrX   Útrack_velocityÚdistancer˜   r–   s                 @@r   Ú_filter_valuesz$CLIP_OT_filter_tracks._filter_values‹   sÆ  øø€ ð	Vð 	Vð 	Vð	'ð 	'ð 	'ð 	'ð 	'ð
 ”ˆØÔ'ˆØ”Oˆ	ØÔ!Ô&ˆØ”I˜a˜a˜a”Lˆ	åŒŒ×!Ò!¨°NÐ!ÑCÔCÐCå™%œ%ˆå˜;¨	°A©Ñ6Ô6ð 	/ð 	/ˆEðð ð ð Ø#'¤=Ô#7ðñ ô ˆOð #ð Øõ  & jÑ1Ô1ÐØ(ð Mð M�Ø$�”Ø  O O°I¸uÀeÑ$LÔ$LÑLÐ Ð Ý�?Ñ#Ô# qÒ(Ð(Ø#3µc¸/Ñ6JÔ6JÑ#JÐ ð )ð /ð /�Ø!0 °¸EÀ5Ñ!IÔ!I�Ø,¨~Ñ=ÔE�à˜iÒ'Ð'Ø#×'Ò'¨Ñ.Ô.Ð.øð/ð %ð 	 ð 	 ˆEØˆEŒLˆLÝ�?Ñ#Ô#Ð#r   c                 ó8   — |j         }|o|j        dk    o|j        S ©NÚCLIP_EDITOR©r¥   r   r6   ©Úclsr   rW   s      r   ÚpollzCLIP_OT_filter_tracks.pollÁ   ó#   € àÔˆØÐ<�r”w -Ò/Ð<°R´WÐ<r   c                 ó¬   — |                       || j        ¦  «        }|                      dht          d¦  «                             |¦  «        ¦  «         dhS )NÚINFOz"Identified {:d} problematic tracksÚFINISHED)rµ   r�   ÚreportÚrpt_Úformat)Úselfr   Ú
num_trackss      r   ÚexecutezCLIP_OT_filter_tracks.executeÆ   sP   € Ø×(Ò(¨°$Ô2FÑGÔGˆ
Ø�Š�V�H�dÐ#GÑHÔH×OÒOÐPZÑ[Ô[Ñ\Ô\Ð\Øˆ|Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úbl_labelÚ	bl_idnameÚ
bl_optionsr   Ú__annotations__Ústaticmethodrµ   Úclassmethodr¼   rÆ   r!   r   r   rŠ   rŠ      s¢   € € € € € € ØIÐIØ€HØ$€IØ˜*Ð%€Jà"�]ØØCØðñ ô ð ð ñ ð ð3$ð 3$ñ „\ð3$ðj ð=ð =ñ „[ð=ðð ð ð ð r   rŠ   c                   ó2   — e Zd ZdZdZed„ ¦   «         Zd„ ZdS )ÚCLIP_OT_set_active_clipzSet Active Clipzclip.set_active_clipc                 ó8   — |j         }|o|j        dk    o|j        S r·   r¹   rº   s      r   r¼   zCLIP_OT_set_active_clip.pollÐ   r½   r   c                 ó˜   — |j         j        }|j        }||_        |j        d         |j        _        |j        d         |j        _        dhS )Nr   r[   rÀ   )r¥   r6   rD   rL   r_   ÚrenderÚresolution_xÚresolution_y)rÄ   r   r6   rD   s       r   rÆ   zCLIP_OT_set_active_clip.executeÕ   sD   € ØÔ!Ô&ˆØ”ˆØ ˆÔØ$(¤I¨a¤LˆŒÔ!Ø$(¤I¨a¤LˆŒÔ!Øˆ|Ðr   N)rÇ   rÈ   rÉ   rË   rÌ   rÐ   r¼   rÆ   r!   r   r   rÒ   rÒ   Ì   sF   € € € € € Ø €HØ&€Iàð=ð =ñ „[ð=ðð ð ð ð r   rÒ   c                   óT   — e Zd ZdZdZdZddhZed„ ¦   «         Ze	d„ ¦   «         Z
d„ Zd	S )
ÚCLIP_OT_track_to_emptyzECreate an Empty object which will be copying movement of active trackzclip.track_to_emptyzLink Empty to Trackr‹   rŒ   c                 óö  — | j         }d }d }t          j        j                             |j        d ¬¦  «        }| j        j                             |¦  «         |                     d¦  «         || j	        j        _
        |j        D ]}|j        dk    r|} nŒ|€|j                             d¬¦  «        }d|_        |j        |_        |j        |_        d|_        |j        |_        t%          | |¦  «        |_        d S )N©r�   Úobject_dataTÚFOLLOW_TRACK©r   F)r¥   r
   r   rI   r5   r�   Ú
collectionÚlinkÚ
select_setÚ
view_layerÚactiverJ   r   rK   r6   rX   Úuse_3d_positionÚobjectrP   r:   )r   r6   Útracking_objectrX   rW   Ú
constraintrM   rN   s           r   Ú_link_trackz"CLIP_OT_track_to_empty._link_trackå   s   € àÔˆØˆ
ØˆåŒXÔ×!Ò! u¤z¸tÐ!ÑDÔDˆØÔÔ"×'Ò'¨Ñ+Ô+Ð+Ø
�Š�dÑÔÐØ,.ˆÔÔ"Ô)à”>ð 	ð 	ˆCØŒx˜>Ò)Ð)Ø �
Ø�ð *ð ÐØœ×+Ò+°Ð+Ñ@Ô@ˆJà%*ˆ
Ô"Øœ'ˆ
ŒØ œ:ˆ
ÔØ%*ˆ
Ô"Ø+Ô0ˆ
ÔÝ0°¸$Ñ?Ô?ˆ
ÔÐÐr   c                 ó8   — |j         }|o|j        dk    o|j        S r·   r¹   rº   s      r   r¼   zCLIP_OT_track_to_empty.pollÿ   r½   r   c                 óª   — |j         }|j        }|j        j        j        }|j        D ]*}t          ||¦  «        r|                      ||||¦  «         Œ+dhS ©NrÀ   )r¥   r6   r9   rI   rã   rª   rY   rè   )rÄ   r   rW   r6   ræ   rX   s         r   rÆ   zCLIP_OT_track_to_empty.execute  sh   € ØÔˆØŒwˆØœ-Ô/Ô6ˆà$Ô+ð 	Hð 	HˆEÝ'¨¨EÑ2Ô2ð HØ× Ò  ¨$°ÀÑGÔGÐGøàˆ|Ðr   N)rÇ   rÈ   rÉ   rÊ   rÌ   rË   rÍ   rÏ   rè   rÐ   r¼   rÆ   r!   r   r   rÙ   rÙ   Þ   st   € € € € € ØOÐOà%€IØ$€HØ˜*Ð%€Jàð@ð @ñ „\ð@ð2 ð=ð =ñ „[ð=ð	ð 	ð 	ð 	ð 	r   rÙ   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚCLIP_OT_bundles_to_meshz=Create vertex cloud using coordinates of reconstructed trackszclip.bundles_to_meshz3D Markers to Meshr‹   rŒ   c                 ó8   — |j         }|o|j        dk    o|j        S r·   r¹   rº   s      r   r¼   zCLIP_OT_bundles_to_mesh.poll  r½   r   c                 óš  — ddl m} |j        }|j        }|j        j        j        }g }|j        }|j        }t          j
        d¦  «        }	|rP|j        }
|j        |j        z
  dz   }|
j                             |¬¦  «        }|j        |                     ¦   «         z  }	|j        D ]*}|j        r!|j        r|                     |j        ¦  «         Œ+|rãt.          j        j                             d¬¦  «        }|j                             t;          |¦  «        ¦  «         |j                             d ||¦  «        ¦  «         t.          j        j                             d|¬	¦  «        }|	|_        |j        j                              |¦  «         | !                    d
¦  «         ||j"        j        _        n|  #                    dhd¦  «         dhS )Nr   ©Úunpack_listé   r[   )r˜   ÚTracks©r�   r“   rÛ   TÚWARNINGzNo usable tracks selectedrÀ   )$Úbpy_extras.io_utilsrñ   r¥   r6   r9   rI   rã   rD   r:   r   ÚIdentityÚreconstructionÚframe_currentr£   ÚcamerasÚmatrix_from_frameÚmatrix_worldÚinvertedrª   Ú
has_bundler«   ÚappendÚbundler
   r   Úmeshesr5   Úverticesr®   r¬   Úforeach_setrß   rà   rá   râ   rÁ   )rÄ   r   rñ   rW   r6   ræ   Ú	new_vertsrD   r:   Úmatrixrø   r�   Úreconstructed_matrixrX   ÚmeshrM   s                   r   rÆ   zCLIP_OT_bundles_to_mesh.execute  sË  € Ø3Ð3Ð3Ð3Ð3Ð3àÔˆØŒwˆØœ-Ô/Ô6ˆàˆ	à”ˆØ”ˆÝ” Ñ#Ô#ˆØð 	KØ,Ô;ˆNØÔ)¨DÔ,<Ñ<¸qÑ@ˆGØ#1Ô#9×#KÒ#KÐRYÐ#KÑ#ZÔ#ZÐ ØÔ(Ð+?×+HÒ+HÑ+JÔ+JÑJˆFà$Ô+ð 	/ð 	/ˆEØÔð / E¤Lð /Ø× Ò  ¤Ñ.Ô.Ð.øàð 
	BÝ”8”?×&Ò&¨HÐ&Ñ5Ô5ˆDØŒM×Ò�c )™nœnÑ-Ô-Ð-ØŒM×%Ò% d¨K¨K¸	Ñ,BÔ,BÑCÔCÐCÝ”Ô!×%Ò%¨8ÀÐ%ÑFÔFˆBØ$ˆBŒOØÔÔ&×+Ò+¨BÑ/Ô/Ð/Ø�MŠM˜$ÑÔÐØ02ˆGÔÔ&Ô-Ð-à�KŠK˜˜Ð%@ÑAÔAÐAàˆ|Ðr   N©
rÇ   rÈ   rÉ   rÊ   rÌ   rË   rÍ   rÐ   r¼   rÆ   r!   r   r   rí   rí     sV   € € € € € ØGÐGà&€IØ#€HØ˜*Ð%€Jàð=ð =ñ „[ð=ð"ð "ð "ð "ð "r   rí   c                   óX   — e Zd ZdZdZdZdhZed„ ¦   «         Zd„ Z	e
d„ ¦   «         Zd„ Zd	S )
ÚCLIP_OT_delete_proxyz1Delete movie clip proxy files from the hard drivezclip.delete_proxyzDelete ProxyrŒ   c                 ó8   — |j         }|o|j        dk    o|j        S r·   r¹   rº   s      r   r¼   zCLIP_OT_delete_proxy.pollH  r½   r   c                 ó<   — |j         }|                     | |¦  «        S r	   )Úwindow_managerÚinvoke_confirm)rÄ   r   ÚeventÚwms       r   ÚinvokezCLIP_OT_delete_proxy.invokeM  s    € ØÔ#ˆà× Ò   uÑ-Ô-Ð-r   c                 óÚ   — dd l }dd l}|j                             | ¦  «        sd S |j                             | ¦  «        r|                     | ¦  «         d S |                     | ¦  «         d S )Nr   )ÚosÚshutilÚpathÚexistsÚisdirÚrmtreeÚremove)Úabspathr  r  s      r   Ú_rmproxyzCLIP_OT_delete_proxy._rmproxyR  su   € àˆ	ˆ	ˆ	ØˆˆˆàŒw�~Š~˜gÑ&Ô&ð 	ØˆFàŒ7�=Š=˜Ñ!Ô!ð 	Ø�MŠM˜'Ñ"Ô"Ð"Ð"Ð"à�IŠI�gÑÔÐÐÐr   c           	      ó   — dd l }|j        }|j        }|j        r|j        j        }n:|j                             |j        ¦  «        }|j         	                    |d¦  «        }|j         
                    |j        ¦  «        }|j         	                    ||¦  «        }t          j                             |¦  «        }	dD ]ž}
|j         	                    |	d                     |
¦  «        ¦  «        }|                      |¦  «         |                      |dz   ¦  «         |                      |j         	                    |	d                     |
¦  «        ¦  «        ¦  «         ŒŸd}|D ]0}
|                      |j         	                    |	|
¦  «        ¦  «         Œ1	 |                     |	¦  «         n# t           $ r Y nw xY w	 t          j                             |¦  «        }|                     |¦  «         n# t           $ r Y nw xY wdhS )	Nr   ÚBL_proxy)é   é2   éK   éd   z
proxy_{:d}Ú_undistortedzproxy_{:d}.avi)zfree_run.blen_tczinterp_free_run.blen_tczrecord_run.blen_tczrecord_run_no_gaps.blen_tcrÀ   )r  r¥   r6   Úuse_proxy_custom_directoryÚproxyÚ	directoryr  ÚdirnameÚfilepathÚjoinÚbasenamer
   r  rÃ   r  ÚrmdirÚOSError)rÄ   r   r  rW   r6   ÚproxydirÚclipdirÚclipfiler$  ÚabsproxyrA   ÚdÚtcÚabsdirs                 r   rÆ   zCLIP_OT_delete_proxy.execute_  sÿ  € Øˆ	ˆ	ˆ	ØÔˆØŒwˆØÔ*ð 	9Ø”zÔ+ˆHˆHà”g—o’o d¤mÑ4Ô4ˆGØ”w—|’| G¨ZÑ8Ô8ˆHà”7×#Ò# D¤MÑ2Ô2ˆØ”—’˜X xÑ0Ô0ˆÝ”8×#Ò# EÑ*Ô*ˆð #ð 	Nð 	NˆAØ”—’˜X |×':Ò':¸1Ñ'=Ô'=Ñ>Ô>ˆAà�MŠM˜!ÑÔÐØ�MŠM˜!˜nÑ,Ñ-Ô-Ð-Ø�MŠM˜"œ'Ÿ,š, xÐ1A×1HÒ1HÈÑ1KÔ1KÑLÔLÑMÔMÐMÐMð
ˆð ð 	5ð 	5ˆAØ�MŠM˜"œ'Ÿ,š, x°Ñ3Ô3Ñ4Ô4Ð4Ð4ð	Ø�HŠH�XÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøð	Ý”X×%Ò% hÑ/Ô/ˆFØ�HŠH�VÑÔÐÐøÝð 	ð 	ð 	ØˆDð	øøøð ˆ|Ðs$   ÆF' Æ'
F4Æ3F4Æ84G- Ç-
G:Ç9G:N)rÇ   rÈ   rÉ   rÊ   rÌ   rË   rÍ   rÐ   r¼   r  rÏ   r  rÆ   r!   r   r   r
  r
  A  s}   € € € € € Ø;Ð;à#€IØ€HØ�€Jàð=ð =ñ „[ð=ð.ð .ð .ð
 ð
ð 
ñ „\ð
ð-ð -ð -ð -ð -r   r
  c                   ó<   — e Zd ZdZdZdZdhZed„ ¦   «         Zd„ Z	dS )ÚCLIP_OT_set_viewport_backgroundzgSet current movie clip as a camera background in 3D Viewport (works only when a 3D Viewport is visible)zclip.set_viewport_backgroundzSet as BackgroundrŒ   c                 ó8   — |j         }|o|j        dk    o|j        S r·   r¹   rº   s      r   r¼   z$CLIP_OT_set_viewport_background.poll—  r½   r   c                 óL   — |j         }t          ||j        |j        ¦  «         dhS rë   ©r¥   rF   r6   r8   )rÄ   r   rW   s      r   rÆ   z'CLIP_OT_set_viewport_background.executeœ  s(   € ØÔˆÝ$ W¨b¬g°r´|ÑDÔDÐDàˆ|Ðr   Nr  r!   r   r   r4  r4  �  sY   € € € € € ð9ð 9ð /€IØ"€HØ�€Jàð=ð =ñ „[ð=ðð ð ð ð r   r4  c                   ó.   — e Zd ZdZdZdZddhZd„ Zd„ ZdS )	ÚCLIP_OT_constraint_to_fcurvezVCreate F-Curves for object which will copy object's movement caused by this constraintzclip.constraint_to_fcurvezConstraint to F-Curver‹   rŒ   c                 óª  — d }d }d }d }|j         }g }|j        D ]}	|	j        dv r|	}Œ|s|                      dhd¦  «         dhS |j        r|j        }n|j        }|s|                      dhd¦  «         dhS |j        dk    rD|j        r=|j         	                    ¦   «         }
|j         
                    |¦  «         |
|_        dhS |j        dk    r|j        j        }n\|j        rI|j        j                             |j        d ¦  «        }|s|                      dhd	¦  «         dhS |j        }n|j        j        }|D ]l}|€|j        d
         j        }n t%          ||j        d
         j        ¦  «        }|€|j        d         j        }ŒLt'          ||j        d         j        ¦  «        }Œm|�|€dhS t)          ||dz   ¦  «        D ]C}	|                     |	¦  «         |                     |j         	                    ¦   «         ¦  «         ŒD|                     ¦   «          d
}t)          ||dz   ¦  «        D ]t}	|                     |	¦  «         ||         |_        |                     d¦  «         |j        dk    r|                     d¦  «         n|                     d¦  «         |dz  }Œu|j         
                    |¦  «         |                     |¦  «         dhS )N>   rÝ   rH   ÚOBJECT_SOLVERÚERRORz4Motion Tracking constraint to be converted not foundÚ	CANCELLEDz.Movie clip to use tracking data from isn't setrÝ   rÀ   rH   z Motion Tracking object not foundr   éÿÿÿÿr[   ÚlocationÚ
QUATERNIONÚrotation_quaternionÚrotation_euler)rù   rJ   r   rÁ   rK   rL   r6   rä   rü   Úcopyr  r9   rª   rå   rI   Úgetr`   r˜   Úminrh   r©   Ú	frame_setrÿ   Úanimation_data_createÚkeyframe_insertÚrotation_mode)rÄ   rD   rM   rN   r6   ÚsfraÚefrarù   ÚmatricesrA   Úmatrª   ræ   rX   Úis                  r   Ú_bake_objectz)CLIP_OT_constraint_to_fcurve._bake_object«  s0  € ØˆØˆØˆØˆØÔ+ˆØˆð
 ”ð 	ð 	ˆAØŒvÐKÐKÐKØ�øàð 	!Ø�KŠK˜˜	Ð#YÑZÔZÐZà�=Ð ð Ôð 	ØÔ$ˆDˆDà”8ˆDàð 	!Ø�KŠK˜˜	Ð#SÑTÔTÐTà�=Ð àŒ8�~Ò%Ð%¨#Ô*=Ð%Ø”/×&Ò&Ñ(Ô(ˆCØŒN×!Ò! #Ñ&Ô&Ð&Ø!ˆBŒOà�<Ðð Œ8�Ò&Ð&à”]Ô)ˆFˆFØŒZð 		*Ø"œmÔ3×7Ò7¸¼
ÀDÑIÔIˆOØ"ð %Ø—’˜W˜IÐ'IÑJÔJÐJà#�}Ð$à$Ô+ˆFˆFà”]Ô)ˆFàð 		:ð 		:ˆEØˆ|Ø”} QÔ'Ô-��å˜4 ¤¨qÔ!1Ô!7Ñ8Ô8�àˆ|Ø”} RÔ(Ô.��å˜4 ¤¨rÔ!2Ô!8Ñ9Ô9��àˆ<˜4˜<Ø�=Ð õ �t˜T A™XÑ&Ô&ð 	4ð 	4ˆAØ�OŠO˜AÑÔÐØ�OŠO˜BœO×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3à
× Ò Ñ"Ô"Ð"ð ˆÝ�t˜T A™XÑ&Ô&ð 	ð 	ˆAØ�OŠO˜AÑÔÐØ& qœkˆBŒOà×Ò˜zÑ*Ô*Ð*àÔ <Ò/Ð/Ø×"Ò"Ð#8Ñ9Ô9Ð9Ð9à×"Ò"Ð#3Ñ4Ô4Ð4à�‰FˆAˆAà
Œ×Ò˜cÑ"Ô"Ð"à�Š˜Ñ&Ô&Ð&àˆ|Ðr   c                 ó~   — |j         }|j        D ],}|                     ¦   «         r|                      ||¦  «         Œ-dhS rë   )rD   rI   Ú
select_getrO  )rÄ   r   rD   rM   s       r   rÆ   z$CLIP_OT_constraint_to_fcurve.execute
  sK   € Ø”ˆð ”-ð 	-ð 	-ˆBØ�}Š}‰Œð -Ø×!Ò! %¨Ñ,Ô,Ð,øàˆ|Ðr   N)	rÇ   rÈ   rÉ   rÊ   rÌ   rË   rÍ   rO  rÆ   r!   r   r   r9  r9  £  sV   € € € € € ð:ð :ð ,€IØ&€HØ˜*Ð%€Jð]ð ]ð ]ð~ð ð ð ð r   r9  c                   ó¼  — e Zd ZdZdZdZddhZed„ ¦   «         Ze	d„ ¦   «         Z
e	d„ ¦   «         Ze	d	„ ¦   «         Ze	d
„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Ze	d„ ¦   «         Ze	d„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚCLIP_OT_setup_tracking_scenez:Prepare scene for compositing 3D objects into this footagezclip.setup_tracking_scenezSetup Tracking Scener‹   rŒ   c                 óz   — |j         }|r1|j        dk    r&|j        }|r|j        j        j        j        j        rdS dS ©Nr¸   TF)r¥   r   r6   r9   rI   rã   rø   Úis_valid©r»   r   rW   r6   s       r   r¼   z!CLIP_OT_setup_tracking_scene.poll  sL   € àÔˆØð 	�"”'˜]Ò*Ð*Ø”7ˆDØð ˜œÔ-Ô4ÔCÔLð Ø�tØˆur   c                 óN   — | j         }| j        j        |_        d|j        _        d S ©NT)rD   r¥   r6   rL   rÕ   Úuse_motion_blur)r   rD   s     r   Ú_setupScenez(CLIP_OT_setup_tracking_scene._setupScene&  s'   € à”ˆØ#Ô.Ô3ˆÔØ'+ˆŒÔ$Ð$Ð$r   c                 óÒ   — | j         }|j        }|s,t          j        j                             d¬¦  «        }||_        d|j        _        t          |d¦  «        rd|j        _	        d S d S )NÚWorldrô   ç      ð?Úcyclesgš™™™™™©?)
rD   Úworldr
   r   Úworldsr5   Úlight_settingsr´   ÚhasattrÚ	ao_factor)r   rD   r`  s      r   Ú_setupWorldz(CLIP_OT_setup_tracking_scene._setupWorld,  ss   € à”ˆØ”ˆàð 	 Ý”H”O×'Ò'¨WÐ'Ñ5Ô5ˆEØˆEŒKð ),ˆÔÔ%Ý�5˜(Ñ#Ô#ð 	2Ø-1ˆEÔ Ô*Ð*Ð*ð	2ð 	2r   c                 óÎ  — | j         }|j        r|j        S t          j        j                             d¬¦  «        }t          j        j                             d|¬¦  «        }|j        j                             |¦  «         ||_        t          j
        d¦  «        t          j        ddd¦  «        z  t          j        ddd	¦  «        z  t          j        d
dd¦  «        z  |_        |S )NÚCamerarô   rÛ   )g�•C‹ì@gÕxé&1ÀgÇK7‰A`@g®Gázê?rò   ÚZgºI+‡†?ÚYgX9´Èv¾ñ?ÚX)rD   r:   r
   r   rú   r5   rI   rß   rà   r   ÚTranslationÚRotationÚmatrix_local)r   rD   r>   Úcamobs       r   Ú_findOrCreateCameraz0CLIP_OT_setup_tracking_scene._findOrCreateCamera:  sØ   € à”ˆàŒ<ð 	 Ø”<ÐåŒhÔ×"Ò"¨Ð"Ñ1Ô1ˆÝ”Ô ×$Ò$¨(ÀÐ$ÑDÔDˆØÔÔ ×%Ò% eÑ,Ô,Ð,àˆŒõ ÔÐ5Ñ6Ô6ÝŒO˜E 1 cÑ*Ô*ñ+åŒO˜E 1 cÑ*Ô*ñ+õ ŒO˜E 1 cÑ*Ô*ñ+ð 	Ôð ˆr   c                 óì  — | j         }|j        }|j        }t                               | ¦  «        }|j        }|j                             ¦   «          |j                             d¬¦  «        }d|_	        d|_
        |j        j        |_        d|_        |j        j        |_        |j        d         }|j        d         }|j        j        }	d|z  |	d         z
  |z  |_        d|z  |	d         z
  |z  |_        d S )	NrH   rÞ   Tr^  Ú
HORIZONTALr   r[   g      à?)r¥   r6   r9   rS  ro  r   rJ   Úclearr5   rK   Ú	influencer:   Úsensor_widthÚ
sensor_fitÚfocal_lengthÚlensr_   Úprincipal_point_pixelsÚshift_xÚshift_y)
r   rW   r6   r9   rn  r>   rN   r‚   rƒ   Úprincipal_point_pxs
             r   Ú_setupCameraz)CLIP_OT_setup_tracking_scene._setupCameraP  sð   € àÔˆØŒwˆØ”=ˆå,×@Ò@ÀÑIÔIˆØŒjˆð 	Ô×ÒÑ!Ô!Ð!ð Ô×#Ò#¨Ð#Ñ9Ô9ˆØ"ˆÔØˆŒà#œ?Ô7ˆÔØ%ˆŒØ”?Ô/ˆŒð
 ”	˜!”ˆØ”˜1”ˆØ%œ_ÔCÐØ˜U‘{Ð%7¸Ô%:Ñ:¸eÑCˆŒØ˜V‘|Ð&8¸Ô&;Ñ;¸uÑDˆŒˆˆr   c                 óJ   — | j         }t          | |j        |j        ¦  «         d S r	   r7  )r   rW   s     r   Ú_setupViewportz+CLIP_OT_setup_tracking_scene._setupViewportn  s&   € àÔˆÝ$ W¨b¬g°r´|ÑDÔDÐDÐDÐDr   c                 ó"  — | j         }|j        }|                     d¦  «        s?t          |¦  «        dk    r|d         }d|_        n|                     d¦  «        }d|_        |                     d¦  «        s|                     d¦  «        }d S d S )NÚ
Foregroundr[   r   TÚ
Background)rD   Úview_layersrD  r¬   r�   r5   Úuse_sky)r   rD   r‚  ÚfgÚ_bgs        r   Ú_setupViewLayersz-CLIP_OT_setup_tracking_scene._setupViewLayerss  s•   € à”ˆØÔ'ˆà�Š˜|Ñ,Ô,ð 	Ý�;ÑÔ 1Ò$Ð$Ø  ”^�Ø&�”�à —_’_ \Ñ2Ô2�àˆBŒJà�Š˜|Ñ,Ô,ð 	0Ø—/’/ ,Ñ/Ô/ˆCˆCˆCð	0ð 	0r   c                 ó^  ‡— ˆfd„Š| j         j        }t          j        j                             |¦  «        }|r	|j        sd }|sAt          j        j                             |¬¦  «        }|j         	                    |¦  «         d S  ‰||¦  «        s|j         	                    |¦  «         d S d S )Nc                 óN   •— 	 |j         D ]}| |k    r dS  ‰| |¦  «        r dS ŒdS )z7Return true if collection is in any of the children or TN)Úchildren)rß   Úcollection_to_queryÚchildÚcollection_in_collections      €r   rŒ  zOCLIP_OT_setup_tracking_scene.createCollection.<locals>.collection_in_collection†  sU   ø€ à6Ø,Ô5ð  ð  �Ø Ò&Ð&Ø˜4˜4à+Ð+¨J¸Ñ>Ô>ð  Ø˜4˜4ð ð	 ð  r   rô   )
rD   rß   r
   r   ÚcollectionsrD  Úis_editabler5   r‰  rà   )r   Úcollection_nameÚmaster_collectionrß   rŒ  s       @r   ÚcreateCollectionz-CLIP_OT_setup_tracking_scene.createCollection„  s×   ø€ ð	 ð 	 ð 	 ð 	 ð 	 ð $œMÔ4ÐÝ”XÔ)×-Ò-¨oÑ>Ô>ˆ
àð 	˜jÔ4ð 	àˆJàð 	<ÝœÔ-×1Ò1°Ð1ÑGÔGˆJØÔ&×+Ò+¨JÑ7Ô7Ð7Ð7Ð7ð ,Ð+¨JÐ8IÑJÔJð <Ø!Ô*×/Ò/°
Ñ;Ô;Ð;Ð;Ð;ð<ð <r   c                 óX  ‡— ˆfd„Š|j         j        j        }|j         j        }t	          |¦  «        dk    rd|d         _        |                      |d¦  «         |                      |d¦  «          ‰|d         j        j        dd¦  «          ‰|d         j        j        dd	¦  «         d S )
Nc                 ó~   •— | D ]8}|j         j        |k    rt          ||d¦  «          d S  ‰|j        ||¦  «         Œ9d S rY  )rß   r�   Úsetattrr‰  )r�  r�  Ú	attr_namerß   Úsetup_collection_recursivelys       €r   r–  zTCLIP_OT_setup_tracking_scene._setupCollections.<locals>.setup_collection_recursively   sf   ø€ Ø)ð ^ð ^�
ØÔ(Ô-°Ò@Ð@Ý˜J¨	°4Ñ8Ô8Ð8Ø�E�EØ,Ð,¨ZÔ-@À/ÐS\Ñ]Ô]Ð]Ð]ð	^ð ^r   r[   Ú
foregroundr   Ú
backgroundr€  Úholdoutr�  Úindirect_only)rD   rß   r‰  r‚  r¬   r�   r‘  Úlayer_collection)rÄ   r   r�  Úvlayersr–  s       @r   Ú_setupCollectionsz.CLIP_OT_setup_tracking_scene._setupCollectionsŸ  så   ø€ ð	^ð 	^ð 	^ð 	^ð 	^ð ”mÔ.Ô7ˆØ”-Ô+ˆåˆ{ÑÔ˜qÒ Ð Ø".ˆK˜ŒNÔà×Ò˜g |Ñ4Ô4Ð4Ø×Ò˜g |Ñ4Ô4Ð4ð 	%Ð$Ø�LÔ!Ô2Ô;ØØñ	
ô 	
ð 	
ð 	%Ð$Ø�LÔ!Ô2Ô;ØØñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó&  — t          | j        ¦  «        dk    rdS d„ | j        D ¦   «         }|                     ¦   «          |d         dk    rA|d         dk    r7| j        r2| j                             | j        d         ¦  «         | j        °,d S d S d S d S )Né   Fc                 ó   — g | ]	}|j         ‘Œ
S r!   rÞ   )r#   Únodes     r   r¡   zBCLIP_OT_setup_tracking_scene._wipeDefaultNodes.<locals>.<listcomp>Á  s   € Ð2Ð2Ð2˜t�”Ð2Ð2Ð2r   r   Ú	COMPOSITEr[   ÚR_LAYERS)r¬   ÚnodesÚsortr  )ÚtreeÚtypess     r   Ú_wipeDefaultNodesz.CLIP_OT_setup_tracking_scene._wipeDefaultNodes½  s­   € åˆtŒz‰?Œ?˜aÒÐØ�5Ø2Ð2 t¤zÐ2Ñ2Ô2ˆØ�
Š
‰Œˆà�Œ8�{Ò"Ð" u¨Q¤x°:Ò'=Ð'=Ø”*ð 1Ø”
×!Ò! $¤*¨Q¤-Ñ0Ô0Ð0ð ”*ð 1ð 1ð 1ð #Ð"Ð'=Ð'=ð1ð 1r   c                 ó8   — | j         D ]}|j        |k    r|c S Œd S r	   )r¤  r   ©r¦  r   r¡  s      r   Ú	_findNodez&CLIP_OT_setup_tracking_scene._findNodeÈ  s5   € à”Jð 	ð 	ˆDØŒy˜DÒ Ð Ø���ð !ð ˆtr   c                 óv   — t                                | |¦  «        }|s| j                             |¬¦  «        }|S )NrÞ   )rS  r«  r¤  r5   rª  s      r   Ú_findOrCreateNodez.CLIP_OT_setup_tracking_scene._findOrCreateNodeÐ  s9   € å+×5Ò5°d¸DÑAÔAˆàð 	-Ø”:—>’> t�>Ñ,Ô,ˆDàˆr   c                 óV   — | j         }|j        }|sdS |j        D ]}|j        dv r dS ŒdS )NT>   Ú	MOVIECLIPÚMOVIEDISTORTIONF)rD   Ú	node_treer¤  r   )r   rD   r¦  r¡  s       r   Ú_needSetupNodesz,CLIP_OT_setup_tracking_scene._needSetupNodesÙ  sO   € à”ˆØŒˆàð 	à�4à”Jð 	ð 	ˆDØŒyÐ<Ð<Ð<Ø�u�uð =ð ˆtr   c                 ó”   — | j         D ]?}| j         D ]5}||k    r-|j        |j        k    r|xj        t          d¦  «        z  c_        Œ6Œ@d S )N)g      D@g      4@)r¤  r?  r   )r¦  ÚaÚbs      r   Ú_offsetNodesz)CLIP_OT_setup_tracking_scene._offsetNodesè  sc   € à”ð 	7ð 	7ˆAØ”Zð 7ð 7�Ø˜’6�6˜aœj¨A¬JÒ6Ð6Ø�J”J¥&¨Ñ"6Ô"6Ñ6�J”Jøð7ð	7ð 	7r   c                 óÈ
  — |                       |¦  «        sd S d„ }t          |ddd|¦  «         |j        }|j        }d|_        |j        }|j        }d}|                      |¦  «         |                      |d¦  «        }|j	         
                    d¬¦  «        }	|                      |d¦  «        }
|j	         
                    d¬¦  «        }|j	         
                    d	¬¦  «        }|r|j	         
                    d
¬¦  «        }|j	         
                    d¬¦  «        }|j	         
                    d¬¦  «        }|j	         
                    d¬¦  «        }|j	         
                    d¬¦  «        }||_        ||_        d|_        |r||_        d|_        ||	_        d|	_        ||_        d|_        |j         
                    |j        d         |j        d         ¦  «         |rc|j         
                    |j        d         |j        d         ¦  «         |j         
                    |j        d         |j        d         ¦  «         n1|j         
                    |j        d         |j        d         ¦  «         |j         
                    |j        d         |j        d         ¦  «         |j         
                    |	j        d         |j        d         ¦  «         |j         
                    |j        d         |j        d         ¦  «         |j         
                    |j        d         |j        d         ¦  «         |j         
                    |j        d         |
j        d         ¦  «         |j         
                    |j        d         |j        d         ¦  «         t#          d¦  «        |_        |j        |_        |xj        t#          d¦  «        z  c_        |rS|j        |_        |xj        t#          d¦  «        z  c_        |j        |_        |xj        t#          d¦  «        z  c_        n)|j        |_        |xj        t#          d¦  «        z  c_        |j        |	_        |	xj        t#          d¦  «        z  c_        |	j        |_        |xj        t#          d¦  «        z  c_        |j        |_        |xj        t#          d¦  «        z  c_        |j        |_        |xj        t#          d¦  «        z  c_        |j        |
_        |
xj        t#          d¦  «        z  c_        |
j        |_        |
xj        t#          d¦  «        z  c_        |                      |¦  «         d S )Nc                 ó   — d| _         d S rY  )Úshow_backdrop)r   s    r   Úsetup_spacez=CLIP_OT_setup_tracking_scene._setupNodes.<locals>.setup_spaceö  s   € Ø"&ˆEÔÐÐr   TÚNODE_EDITORFÚCompositorNodeRLayersrÞ   ÚCompositorNodeCompositeÚCompositorNodeMovieClipÚCompositorNodeMovieDistortionÚCompositorNodeStabilize2DÚCompositorNodeScaleÚCompositorNodeAlphaOverÚCompositorNodeViewerÚ	UNDISTORTÚRENDER_SIZEr�  r€  ÚImager[   rŸ  )g     ÀrÀç     àu@)ç      i@r¢   )r¢   rÇ  )r¢   g     @@)ç     @o@r¢   )rÉ  g     @oÀ)g     Àr@g      YÀ)r¢   rÈ  )r²  r   r¥   rD   Ú	use_nodesr±  r6   r¨  r­  r¤  r5   Údistortion_typer   ÚlayerÚlinksÚoutputsÚinputsr   r?  r¶  )rÄ   r   rº  rW   rD   r¦  r6   Úneed_stabilizationÚ	rlayer_fgÚ	rlayer_bgÚ	compositeÚ	movieclipÚ
distortionÚ	stabilizeÚscaleÚshadowcatcherÚ	alphaoverÚviewers                     r   Ú_setupNodesz(CLIP_OT_setup_tracking_scene._setupNodesï  sï  € Ø×#Ò# GÑ,Ô,ð 	ð ˆFð	'ð 	'ð 	'õ 	˜ $¨°}ÀkÑRÔRÐRàÔˆØ”ˆØˆŒØŒˆØŒwˆà"Ðð 	×Ò˜tÑ$Ô$Ð$ð ×*Ò*¨4Ð1HÑIÔIˆ	Ø”J—N’NÐ(?�NÑ@Ô@ˆ	Ø×*Ò*¨4Ð1JÑKÔKˆ	à”J—N’NÐ(A�NÑBÔBˆ	Ø”Z—^’^Ð)H�^ÑIÔIˆ
àð 	IØœ
ŸšÐ,G˜ÑHÔHˆIà”
—’Ð$9�Ñ:Ô:ˆØœ
ŸšÐ,E˜ÑFÔFˆØ”J—N’NÐ(A�NÑBÔBˆ	Ø”—’Ð%;�Ñ<Ô<ˆð ˆ	Œàˆ
ŒØ%0ˆ
Ô"àð 	"Ø!ˆIŒNà#ˆŒàˆ	ŒØ&ˆ	Œàˆ	ŒØ&ˆ	Œð 	Œ
�Š�yÔ(¨Ô1°:Ô3DÀWÔ3MÑNÔNÐNàð 	OØŒJ�NŠN˜:Ô-¨gÔ6¸	Ô8HÈÔ8QÑRÔRÐRØŒJ�NŠN˜9Ô,¨WÔ5°u´|ÀGÔ7LÑMÔMÐMÐMàŒJ�NŠN˜:Ô-¨gÔ6¸¼ÀWÔ8MÑNÔNÐNàŒ
�Š�u”} WÔ-¨}Ô/CÀAÔ/FÑGÔGÐGàŒ
�Š�yÔ(¨Ô1°=Ô3GÈÔ3JÑKÔKÐKàŒ
�Š�yÔ(¨Ô1°9Ô3CÀAÔ3FÑGÔGÐGàŒ
�Š�}Ô,¨WÔ5°yÔ7GÈÔ7JÑKÔKÐKàŒ
�Š�yÔ(¨Ô1°9Ô3CÀGÔ3LÑMÔMÐMØŒ
�Š�yÔ(¨Ô1°6´=ÀÔ3IÑJÔJÐJõ $ OÑ4Ô4ˆ	Ôà'Ô0ˆ
ÔØÐÔ�v lÑ3Ô3Ñ3ÐÔàð 	3Ø!+Ô!4ˆIÔØÐÔ¥&¨Ñ"6Ô"6Ñ6ÐÔà&Ô/ˆEŒNØˆNŒN�f \Ñ2Ô2Ñ2ˆNŒNˆNà'Ô0ˆEŒNØˆNŒN�f \Ñ2Ô2Ñ2ˆNŒNà&Ô/ˆ	ÔØÐÔ�f \Ñ2Ô2Ñ2ÐÔà&Ô/ˆ	ÔØÐÔ�f \Ñ2Ô2Ñ2ÐÔà!&¤ˆÔØÐÔ¥&¨Ñ"6Ô"6Ñ6ÐÔà*Ô3ˆ	ÔØÐÔ�f _Ñ5Ô5Ñ5ÐÔà&Ô/ˆ	ÔØÐÔ�f _Ñ5Ô5Ñ5ÐÔà#Ô,ˆŒØÐÔ�f \Ñ2Ô2Ñ2ÐÔð 	×Ò˜$ÑÔÐÐÐr   c                 ó´  — ddl m} t          j        j                             |¬¦  «        }|j                             t          |¦  «        ¦  «         |j         	                    d ||¦  «        ¦  «         t          |¦  «        }|dz  }|j
                             |¦  «         |j                             |¦  «         |j         	                    dt          d|d¦  «        ¦  «         |j
         	                    d|¦  «         |                     ¦   «          t          j        j                             ||¬¦  «        }| j                             |¦  «         |S )	Nr   rð   rô   r“   rò   Ú
loop_startÚvertex_indexrÛ   )rö   rñ   r
   r   r  r5   r  r®   r¬   r  ÚloopsÚpolygonsr©   ÚupdaterI   rà   )	rß   r�   r  Úfacesrñ   r  Ú	nbr_loopsÚ	nbr_polysrM   s	            r   Ú_createMeshz(CLIP_OT_setup_tracking_scene._createMesha  s,  € à3Ð3Ð3Ð3Ð3Ð3åŒxŒ×"Ò"¨Ð"Ñ-Ô-ˆàŒ×Ò�#˜h™-œ-Ñ(Ô(Ð(ØŒ×!Ò! $¨¨°HÑ(=Ô(=Ñ>Ô>Ð>å˜‘J”Jˆ	Ø ‘Nˆ	ØŒ
�Š�yÑ!Ô!Ð!ØŒ×Ò˜)Ñ$Ô$Ð$àŒ×!Ò! ,µ°a¸ÀAÑ0FÔ0FÑGÔGÐGØŒ
×Ò˜~¨uÑ5Ô5Ð5à�Š‰ŒˆåŒXÔ×!Ò! t¸Ð!Ñ>Ô>ˆØÔ×Ò Ñ#Ô#Ð#àˆ	r   c                 ó.   — |  |  |f| |  |f| | |f|  | |fgS r	   r!   )Ú	half_sizeÚzs     r   Ú_getPlaneVerticesz.CLIP_OT_setup_tracking_scene._getPlaneVerticesy  s>   € ð ˆZ˜)˜ QÐ'Ø˜˜
 AÐ&Ø˜	 1Ð%ØˆZ˜ AÐ&ð	
ð 	
r   c                 ót   — |                       dd¦  «        }g d¢}|                      |d||¦  «        }d|d<   |S )Ng      @r¢   )r   r[   rŸ  é   ÚGroundTÚ	is_ground©ré  rå  )rÄ   rß   r  râ  rM   s        r   Ú_createGroundz*CLIP_OT_setup_tracking_scene._createGround‚  sG   € Ø×)Ò)¨#¨sÑ3Ô3ˆØ��ˆà×Ò˜j¨(°H¸eÑDÔDˆØˆˆ;‰àˆ	r   c                 óN   — | j         }|j        D ]}|j        dk    rd|v r|c S Œd S )NÚMESHrí  )rD   rI   r   )r   rD   rM   s      r   Ú_findGroundz(CLIP_OT_setup_tracking_scene._findGround‹  s@   € à”ˆà”-ð 	ð 	ˆBØŒw˜&Ò Ð  [°BÐ%6Ð%6Ø�	�	�	øàˆtr   c                  óÐ   — t           j        j                             dd¬¦  «        } t           j        j                             d| ¬¦  «        }t          j        d¦  «        |_        |S )NÚLightÚPOINT)r�   r   rÛ   )gçû©ñÒM@g®Gázð?gV-²�@)r
   r   Úlightsr5   rI   r   rk  rm  )ÚlightÚlightobs     r   Ú_createLightz)CLIP_OT_setup_tracking_scene._createLight•  sT   € å””×#Ò#¨°wÐ#Ñ?Ô?ˆÝ”(Ô"×&Ò&¨GÀÐ&ÑGÔGˆå%Ô1Ð2GÑHÔHˆÔàˆr   c                 ó�   — |                       dd¦  «        |                       dd¦  «        z   }d}|                      |d||¦  «        S )Nr^  g      ð¿)r   r[   rŸ  rë  rò   é   é   é   r   rò   rý  r[   r[   rý  rü  rŸ  rŸ  rü  rû  rë  rë  rû  rò   r   ÚCuberî  )rÄ   rß   r  râ  s       r   Ú_createSampleObjectz0CLIP_OT_setup_tracking_scene._createSampleObjectž  sR   € Ø×)Ò)¨#¨tÑ4Ô4Ø×"Ò" 3¨Ñ,Ô,ñ-ˆðˆð ×Ò 
¨F°H¸eÑDÔDÐDr   c                 ó*  ‡
— ˆ
fd„Š
|j         }t          j        j        d         }t          j        j        d         }d}d}|j        D ]!}|j        dk    rd}Œ|j        dk    rd|vrd}Œ"|sH|                      ¦   «         }|j                             |¦  «         |j                             |¦  «         |s|                      |¦  «        }|  	                    |¦  «        }	|	s|  
                    |¦  «        }	t          |d	¦  «        r ‰
|¦  «         d S d S )
Nc                 óT   •— | j         D ]}d|_        | j        D ]} ‰|¦  «         ŒŒdS )zdMake all the newly created and the old objects of a collection to be properly setup for shadow catchTN)rI   Úis_shadow_catcherr‰  )rß   rM   r‹  Úsetup_shadow_catcher_objectss      €r   r  zPCLIP_OT_setup_tracking_scene._setupObjects.<locals>.setup_shadow_catcher_objects¬  sT   ø€ ð !Ô(ð 8ð 8�Ø'+�Ô$Ø'Ô0ð 8ð 8�EØ0Ð0°Ñ7Ô7Ð7Ð7ð8ð8ð 8r   )r—  N)r˜  NFÚLIGHTTrñ  rí  r_  )rD   r
   r   r�  rI   r   rù  rà   rÿ  rò  rï  rc  )rÄ   r   rD   Úfg_collÚbg_collÚ	has_lightÚhas_meshrM   r÷  Úgroundr  s             @r   Ú_setupObjectsz*CLIP_OT_setup_tracking_scene._setupObjectsª  s\  ø€ ð	8ð 	8ð 	8ð 	8ð 	8ð ”ˆÝ”(Ô&Ð'9Ô:ˆÝ”(Ô&Ð'9Ô:ˆð ˆ	ØˆØ”-ð 	 ð 	 ˆBØŒw˜'Ò!Ð!Ø �	�	Ø”˜FÒ"Ð" {¸"Ð'<Ð'<Ø�øð ð 	(Ø×%Ò%Ñ'Ô'ˆEØŒO× Ò  Ñ'Ô'Ð'ØŒO× Ò  Ñ'Ô'Ð'ð ð 	3Ø×)Ò)¨'Ñ2Ô2ˆBð ×!Ò! 'Ñ*Ô*ˆØð 	1Ø×'Ò'¨Ñ0Ô0ˆFõ �5˜(Ñ#Ô#ð 	2Ø(Ð(¨Ñ1Ô1Ð1Ð1Ð1ð	2ð 	2r   c                 óX  — |                       |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         |                      |¦  «         dhS rë   )r[  re  r|  r~  r†  r�  rÛ  r
  )rÄ   r   s     r   rÆ   z$CLIP_OT_setup_tracking_scene.executeÔ  sª   € Ø×Ò˜Ñ!Ô!Ð!Ø×Ò˜Ñ!Ô!Ð!Ø×Ò˜'Ñ"Ô"Ð"Ø×Ò˜GÑ$Ô$Ð$Ø×Ò˜gÑ&Ô&Ð&Ø×Ò˜wÑ'Ô'Ð'Ø×Ò˜Ñ!Ô!Ð!Ø×Ò˜7Ñ#Ô#Ð#àˆ|Ðr   N) rÇ   rÈ   rÉ   rÊ   rÌ   rË   rÍ   rÐ   r¼   rÏ   r[  re  ro  r|  r~  r†  r‘  r�  r¨  r«  r­  r²  r¶  rÛ  rå  ré  rï  rò  rù  rÿ  r
  rÆ   r!   r   r   rS  rS    sa  € € € € € ØDÐDð ,€IØ%€HØ˜*Ð%€Jàðð ñ „[ðð ð,ð ,ñ „\ð,ð
 ð2ð 2ñ „\ð2ð ðð ñ „\ðð* ðEð Eñ „\ðEð: ðEð Eñ „\ðEð ð0ð 0ñ „\ð0ð  ð<ð <ñ „\ð<ð4
ð 
ð 
ð< ð1ð 1ñ „\ð1ð ðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ð7ð 7ñ „\ð7ðp ð p ð p ðd ðð ñ „\ðð. ð
ð 
ñ „\ð
ðð ð ð ðð ñ „\ðð ðð ñ „\ðð
Eð 
Eð 
Eð(2ð (2ð (2ðT
ð 
ð 
ð 
ð 
r   rS  c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	Ú!CLIP_OT_track_settings_as_defaultz<Copy tracking settings from active track to default settingszclip.track_settings_as_defaultzTrack Settings as Defaultr‹   rŒ   c                 óf   — |j         }|r'|j        dk    r|j        }|r|j        j        j        rdS dS rU  ©r¥   r   r6   r9   rª   rã   rW  s       r   r¼   z&CLIP_OT_track_settings_as_default.pollè  óF   € àÔˆØð 	�"”'˜]Ò*Ð*Ø”7ˆDØð ˜œÔ,Ô3ð Ø�tØˆur   c                 ó–   — |j         }|j        }|j        j        j        }|j        j        |j        z
  dz   }t          |||¦  «         dhS )Nr[   rÀ   )	r¥   r6   r9   rª   rã   rD   rù   r£   rˆ   )rÄ   r   rW   r6   rX   r�   s         r   rÆ   z)CLIP_OT_track_settings_as_default.executeñ  sO   € ØÔˆØŒwˆà”Ô$Ô+ˆØ”-Ô-°Ô0@Ñ@À1ÑDˆå(¨¨u°gÑ>Ô>Ð>àˆ|Ðr   Nr  r!   r   r   r  r  á  sV   € € € € € ØFÐFà0€IØ*€HØ˜*Ð%€Jàðð ñ „[ðð	ð 	ð 	ð 	ð 	r   r  c                   óF   — e Zd ZdZdZdZddhZdZdZe	d„ ¦   «         Z
d	„ Zd
S )ÚCLIP_OT_track_settings_to_trackz;Copy tracking settings from active track to selected trackszCopy Track Settingszclip.track_settings_to_trackr‹   rŒ   )re   rk   rm   ro   rq   rs   ru   rw   ry   r{   r}   r   )Úpattern_cornersrd   rc   c                 óf   — |j         }|r'|j        dk    r|j        }|r|j        j        j        rdS dS rU  r  rW  s       r   r¼   z$CLIP_OT_track_settings_to_track.poll  r  r   c           
      óÀ  — |j         }|j        }|j        j        j        }|j        j        |j        z
  dz   }|j         	                    |d¬¦  «        }|j        j        D ]}}|j
        rt||k    rn|j         	                    |d¬¦  «        }| j        D ]!}	t          ||	t          ||	¦  «        ¦  «         Œ"| j        D ]!}	t          ||	t          ||	¦  «        ¦  «         Œ"Œ~dhS )Nr[   Fr\   rÀ   )r¥   r6   r9   rª   rã   rD   rù   r£   r`   ra   r«   Ú_attrs_trackr”  ÚgetattrÚ_attrs_marker)
rÄ   r   r   r6   rX   r�   r„   ÚtÚmarker_selectedÚattrs
             r   rÆ   z'CLIP_OT_track_settings_to_track.execute"  sÿ   € ØÔ"ˆØŒzˆØ”Ô$Ô+ˆà”-Ô-°Ô0@Ñ@À1ÑDˆØ”×)Ò)¨'¸Ð)Ñ?Ô?ˆà”Ô%ð 	Jð 	JˆAØŒxð J˜A šJ˜JØ"#¤)×"6Ò"6°wÀeÐ"6Ñ"LÔ"L�Ø Ô-ð ;ð ;�DÝ˜A˜t¥W¨U°DÑ%9Ô%9Ñ:Ô:Ð:Ð:Ø Ô.ð Jð J�DÝ˜O¨Tµ7¸6À4Ñ3HÔ3HÑIÔIÐIÐIøàˆ|Ðr   N)rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   r  r  rÐ   r¼   rÆ   r!   r   r   r  r  ý  sf   € € € € € ØEÐEà$€HØ.€IØ˜*Ð%€Jð€Lð€Mð ðð ñ „[ððð ð ð ð r   r  )r
   Ú	bpy.typesr   Ú	bpy.propsr   Ú	mathutilsr   r   Úbpy.app.translationsr   rÂ   r   rF   rP   rY   rˆ   rŠ   rÒ   rÙ   rí   r
  r4  r9  rS  r  r  Úclassesr!   r   r   ú<module>r"     s³  ðð
 €
€
€
Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5ð/ð /ð /ð#7ð #7ð #7ðLð ð ð 
ð 
ð 
ð+ð +ð +ðDJð Jð Jð Jð J˜Hñ Jô Jð JðZð ð ð ð ˜hñ ô ð ð$/ð /ð /ð /ð /˜Xñ /ô /ð /ðd.ð .ð .ð .ð .˜hñ .ô .ð .ðbKð Kð Kð Kð K˜8ñ Kô Kð Kð\ð ð ð ð  hñ ô ð ð(oð oð oð oð o 8ñ oô oð oðdIð Ið Ið Ið I 8ñ Iô Ið IðXð ð ð ð ¨ñ ô ð ð85ð 5ð 5ð 5ð 5 hñ 5ô 5ð 5ðr Ø ØØØØ#Ø Ø%Ø#Øð€€€r   