
    ai              
       R   S SK r S SKJr  S SKJr  S SKJrJr  S SKJ	r
  S rS rS rS	 rS
 r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\\\\\\\\\\4
rg)    N)Operator)FloatProperty)VectorMatrix)pgettext_rptc                    U(       a  [         R                  R                  OU R                  /nU HV  nUR                   HC  nUR
                  U:X  d  M  UR                   H  n	U	R
                  U:X  d  M  U" U	/UQ76   M      ME     MX     g N)bpydatascreensscreenareastypespaces)
contextall_screenstareatspacecallbackargsr   r   areaspaces
             Y/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/clip.pyCLIP_spaces_walkr      sg    "-chhGNN3CGLLDyyE!![[EzzV+ .. ) !     c                    ^ S mU4S jnU R                   R                  nU(       a  UR                  S:w  a  g U" UR                  X5        g )Nc                    U R                   S:X  a8  [        S U R                  U R                  U R                  4 5       5      (       + $ U R                   S:X  a-  [        S U R
                  U R                  4 5       5      (       + $ g)N
POLYNOMIALc              3   *   #    U  H	  oS :H  v   M     g7fr   N .0ks     r   	<genexpr>TCLIP_set_viewport_background.<locals>.check_camera_has_distortion.<locals>.<genexpr>   s      !1Q !   DIVISIONc              3   *   #    U  H	  oS :H  v   M     g7fr    r!   r"   s     r   r%   r&   &   s      !1Q !r'   F)distortion_modelallk1k2k3division_k1division_k2)tracking_cameras    r   check_camera_has_distortionACLIP_set_viewport_background.<locals>.check_camera_has_distortion   s    ++|; #&&#&&#&&!    --; #//#//!    r   c                 j  > S nU R                    H  nUR                  S:X  d  M  Un  O   U(       d  U R                   R                  5       nSUl        Xl        UR                  UR
                  l        T" UR                  R                  5      (       a  SUR
                  l        SUl	        SU l
        g )N
MOVIE_CLIPTF)background_imagessourcenewclipproxy_render_size	clip_usertrackingcamerause_render_undistorteduse_camera_clipshow_background_images)camr9   userbgpicxr2   s        r   set_background4CLIP_set_viewport_background.<locals>.set_background.   s    &&Axx<' '
 ))--/E#
,0,B,B)&t}}';';<<59EOO2 %%)"r   CAMERA)scener=   r   r   )r   r9   r;   rE   scene_camerar2   s        @r   CLIP_set_viewport_backgroundrJ      sA    $*( ==''Ll//8;<$$d6r   c                 2   U R                   nUR                  nUR                   Hn  nUR                  S:X  d  M  UR                   HI  nUR                  S:X  d  M  UR
                  (       a  UR                  OUR                  nXa:X  d  ME  Us  s  $    Mp     U$ )NrG   CAMERA_SOLVER)rH   r=   objectsr   constraintsuse_active_clipactive_clipr9   )r   r9   rH   r=   obconcur_clips          r   CLIP_camera_for_cliprT   H   ss    MME\\Fmm77h~~88.474G4Gu00SXXH'!	 &  Mr   c                     UR                   (       a  gU R                  (       a  UR                  (       a  gU R                  (       a  UR                  (       a  gg)NTF)select_anchorshow_marker_patternselect_patternshow_marker_searchselect_search)sctracks     r   CLIP_track_view_selectedr]   X   s9    	%"6"6	!4!4r   c                    U R                   R                  nU R                  S   nU R                  S   nUR                  R	                  USS9nUR
                  n[        US   5      [        US   5      -
  nUR                  UR                  -
  n	US   U-  US'   US   U-  US'   U	S   U-  U	S'   U	S   U-  U	S'   UR                  Ul
        [        [        US   US   5      5      Ul        [        [        U	S   U	S   5      5      Ul        UR                  Ul        UR"                  Ul        UR&                  Ul        UR*                  Ul        UR.                  Ul        UR2                  Ul        UR6                  Ul        UR:                  Ul        UR>                  Ul         URB                  Ul"        URF                  Ul$        g )Nr      Fexact)%r<   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)
r9   r\   framenrrb   widthheightmarker
pattern_bbpatternsearchs
             r    CLIP_default_settings_from_trackr   e   s   }}%%HIIaLEYYq\F]]%%gU%;F))JZ]#fZ]&;;G!2!22Fe#GAJf$GAJq	E!F1Iq	F"F1I','<'<H$$'GAJ
(C$DH!#&s6!9fQi'@#AH $)$6$6H!%*%8%8H"#llH$)$6$6H!!&H).)@)@H& %H','<'<H$).)@)@H&(-(>(>H%#llHr   c                   f    \ rS rSr% SrSrSrSS1r\" SSS	S
9\	S'   \
S 5       r\S 5       rS rSrg)CLIP_OT_filter_tracks   z?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                 X  ^ S mU4S jnU R                   nUR                  nUR                  nU R                  R                  nUR
                  S S  n[        R                  R                  R                  SSS9  [        5       n[        XES-   5       H  n	UR                  R                   V
s/ s HL  n
U
R                  R                  U	5      (       d  M%  U
R                  R                  U	S-
  5      (       d  MJ  U
PMN     nn
U(       d  My  [        S5      nU H  n
SU
l        X" XzU	5      -  nM     [#        U5      S:  a  U[#        U5      -  nU H2  n
U" XzU	5      nX-
  R$                  nX:  d  M!  UR'                  U
5        M4     M     U H
  n
S	U
l        M     [#        U5      $ s  sn
f )
Nc                     UR                   R                  U5      n[        UR                  S   U S   -  UR                  S   U S   -  45      $ )Nr   r_   )rd   re   r   co)	clip_sizer\   frame_numberr   s       r    get_marker_coordinates_in_pixelsNCLIP_OT_filter_tracks._filter_values.<locals>.get_marker_coordinates_in_pixels   sI    ]]--l;F699Q<)A,6		!yQR|8STUUr   c                 6   > T" XU5      nT" XUS-
  5      nX4-
  $ )Nr_   r!   )r   r\   framemarker_amarker_br   s        r   marker_velocity=CLIP_OT_filter_tracks._filter_values.<locals>.marker_velocity   s)    7	%PH7	%RS)TH&&r   
   DELETE_TRACK)framesactionr_   )        r   FT)rH   frame_start	frame_end
space_datar9   rc   r
   opsclean_trackssetranger<   tracksrd   re   r   selectlenlengthadd)r   	thresholdr   rH   r   r   r9   r   tracks_to_cleanr   r\   relevant_tracksaverage_velocitytrack_velocitydistancer   s                  @r   _filter_values$CLIP_OT_filter_tracks._filter_values   s   	V	'
 ''OO	!!&&IIaL	!!N!C%;A6E $(==#7#7#7%MM,,U3 MM,,UQY7 #7   #  &j1($ OIe$LL  ) ?#q(#3c/6J#J  )!05!I,=EE'#''. )+ 78 %EEL %?##7s   /$F'!F'<F'c                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ NCLIP_EDITORr   r   r9   clsr   r[   s      r   pollCLIP_OT_filter_tracks.poll   *    <rww-/<RWW<r   c                     U R                  XR                  5      nU R                  S1[        S5      R	                  U5      5        S1$ )NINFOz"Identified {:d} problematic tracksFINISHED)r   r   reportrpt_format)selfr   
num_trackss      r   executeCLIP_OT_filter_tracks.execute   sB    ((2F2FG
VHd#GHOOPZ[\|r   r!   N)__name__
__module____qualname____firstlineno____doc__bl_label	bl_idname
bl_optionsr   __annotations__staticmethodr   classmethodr   r   __static_attributes__r!   r   r   r   r      s]    IH$I*%J"C  3$ 3$j = =r   r   c                   2    \ rS rSrSrSr\S 5       rS rSr	g)CLIP_OT_set_active_clip   zSet Active Clipzclip.set_active_clipc                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ r   r   r   s      r   r   CLIP_OT_set_active_clip.poll   r   r   c                     UR                   R                  nUR                  nX#l        UR                  S   UR
                  l        UR                  S   UR
                  l        S1$ )Nr   r_   r   )r   r9   rH   rP   rc   renderresolution_xresolution_y)r   r   r9   rH   s       r   r   CLIP_OT_set_active_clip.execute   sR    !!&& $(IIaL!$(IIaL!|r   r!   N)
r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r      s#     H&I= =r   r   c                   N    \ rS rSrSrSrSrSS1r\S 5       r	\
S 5       rS	 rS
rg)CLIP_OT_track_to_empty   zECreate an Empty object which will be copying movement of active trackzclip.track_to_emptyzLink Empty to Trackr   r   c                 P   U R                   nS nS n[        R                  R                  R	                  UR
                  S S9nU R                  R                  R                  U5        UR                  S5        X`R                  R                  l
        UR                   H  nUR                  S:X  d  M  Un  O   Uc  UR                  R	                  SS9nSUl        UR                  Ul        UR
                  Ul        SUl        UR
                  Ul        [%        X5      Ul        g )Nr   object_dataTFOLLOW_TRACKr   F)r   r
   r   rM   r8   r   
collectionlink
select_set
view_layeractiverN   r   rO   r9   r\   use_3d_positionobjectrT   r=   )r   r9   tracking_objectr\   r[   
constraintrQ   rR   s           r   _link_track"CLIP_OT_track_to_empty._link_track   s    
XX!!uzzt!D""''+
d,."")>>Cxx>) 
 "
 +++@J%*
"''
 ::
%*
"+00
0?
r   c                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ r   r   r   s      r   r   CLIP_OT_track_to_empty.poll  r   r   c                     UR                   nUR                  nUR                  R                  R                  nUR
                   H'  n[        X%5      (       d  M  U R                  XXE5        M)     S1$ Nr   )r   r9   r<   rM   r   r   r]   r   )r   r   r[   r9   r   r\   s         r   r   CLIP_OT_track_to_empty.execute  s`    ww--//66$++E'22  G , |r   r!   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r      sF    O%I$H*%J@ @2 = =	r   r   c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)CLIP_OT_bundles_to_meshi  z=Create vertex cloud using coordinates of reconstructed trackszclip.bundles_to_meshz3D Markers to Meshr   r   c                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ r   r   r   s      r   r   CLIP_OT_bundles_to_mesh.poll  r   r   c                 f   SSK Jn  UR                  nUR                  nUR                  R
                  R                  n/ nUR                  nUR                  n[        R                  " S5      n	U(       a^  UR                  n
UR                  UR                  -
  S-   nU
R                  R                  US9nUR                   UR#                  5       -  n	UR$                   HD  nUR&                  (       d  M  UR(                  (       d  M)  UR+                  UR,                  5        MF     U(       a  [.        R0                  R2                  R5                  SS9nUR6                  R9                  [;        U5      5        UR6                  R=                  SU" U5      5        [.        R0                  R
                  R5                  SUS	9nXl        UR>                  R
                  RA                  U5        URC                  S
5        XRD                  R
                  l        S1$ U RG                  S1S5        S1$ )Nr   unpack_list   r_   )r   Tracksr   r   r   TWARNINGzNo usable tracks selectedr   )$bpy_extras.io_utilsr  r   r9   r<   rM   r   rH   r=   r   Identityreconstructionframe_currentr   camerasmatrix_from_framematrix_worldinvertedr   
has_bundler   appendbundler
   r   meshesr8   verticesr   r   foreach_setr   r   r   r   r   )r   r   r  r[   r9   r   	new_vertsrH   r=   matrixr
  r   reconstructed_matrixr\   meshrQ   s                   r   r   CLIP_OT_bundles_to_mesh.execute$  s   3ww--//66	#,;;N))D,<,<<q@G#1#9#9#K#KRY#K#Z ((+?+H+H+JJF$++EELLL  . , 88??&&H&5DMMc)n-MM%%dK	,BC!!%%8%FB$O&&++B/MM$02&&- | KK%@A|r   r!   Nr   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r     s0    G&I#H*%J= ="r   r   c                   R    \ rS rSrSrSrSrS1r\S 5       r	S r
\S 5       rS	 rS
rg)CLIP_OT_delete_proxyiI  z1Delete movie clip proxy files from the hard drivezclip.delete_proxyzDelete Proxyr   c                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ r   r   r   s      r   r   CLIP_OT_delete_proxy.pollP  r   r   c                 <    UR                   nUR                  X5      $ r	   )window_managerinvoke_confirm)r   r   eventwms       r   invokeCLIP_OT_delete_proxy.invokeU  s    ##  --r   c                     SS K nSS KnUR                  R                  U 5      (       d  g UR                  R	                  U 5      (       a  UR                  U 5        g UR                  U 5        g )Nr   )osshutilpathexistsisdirrmtreeremove)abspathr(  r)  s      r   _rmproxyCLIP_OT_delete_proxy._rmproxyZ  sI    ww~~g&&77==!!MM'"IIgr   c           	      *   SS K nUR                  nUR                  nUR                  (       a  UR                  R
                  nOAUR                  R                  UR                  5      nUR                  R                  US5      nUR                  R                  UR                  5      nUR                  R                  XW5      n[        R                  R                  U5      n	S H  n
UR                  R                  U	SR                  U
5      5      nU R                  U5        U R                  US-   5        U R                  UR                  R                  U	SR                  U
5      5      5        M     SnU H-  n
U R                  UR                  R                  X5      5        M/      UR                  U	5         [        R                  R                  U5      nUR                  U5        S1$ ! [          a     N@f = f! [          a     S1$ f = f)	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   r9   use_proxy_custom_directoryproxy	directoryr*  dirnamefilepathjoinbasenamer
   r/  r   r0  rmdirOSError)r   r   r(  r[   r9   proxydirclipdirclipfiler:  absproxyrD   dtcabsdirs                 r   r   CLIP_OT_delete_proxy.executeg  s   ww**zz++Hggoodmm4Gww||GZ8H77##DMM2X088##E* #AX|':':1'=>AMM!MM!n,-MM"'',,x1A1H1H1KLM #
 AMM"'',,x34 	HHX
	XX%%h/FHHV |  		  	|	s$   .G3  0H 3
H ?H 
HHr!   N)r   r   r   r   r   r   r   r   r   r   r%  r   r0  r   r   r!   r   r   r  r  I  sF    ;#IHJ= =.
 
 
-r   r  c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)CLIP_OT_set_viewport_backgroundi  zgSet 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   r   c                 p    UR                   nU=(       a"    UR                  S:H  =(       a    UR                  $ r   r   r   s      r   r   $CLIP_OT_set_viewport_background.poll  r   r   c                 `    UR                   n[        XR                  UR                  5        S1$ r   r   rJ   r9   r;   )r   r   r[   s      r   r   'CLIP_OT_set_viewport_background.execute  s'    $Wggr||D|r   r!   Nr  r!   r   r   rK  rK    s4    9 /I"H*%J= =r   rK  c                   4    \ rS rSrSrSrSrSS1rS rS r	S	r
g
)CLIP_OT_constraint_to_fcurvei  zVCreate F-Curves for object which will copy object's movement caused by this constraintzclip.constraint_to_fcurvezConstraint to F-Curver   r   c                    S nS nS nS nUR                   n/ nUR                   H  n	U	R                  S;   d  M  U	nM     U(       d  U R                  S1S5        S1$ UR                  (       a  UR
                  nOUR                  nU(       d  U R                  S1S5        S1$ UR                  S:X  aO  UR                  (       a>  UR                  R                  5       n
UR                  R                  U5        Xl        S1$ UR                  S:X  a  UR                  R                  nOUR                  (       aZ  UR                  R                  R                  UR                  S 5      nU(       d  U R                  S1S	5        S1$ UR                  nOUR                  R                  nU H  nUc  UR                   S
   R"                  nO"[%        X]R                   S
   R"                  5      nUc  UR                   S   R"                  nM`  ['        XmR                   S   R"                  5      nM     Ub  Uc  S1$ [)        XVS-   5       H=  n	UR+                  U	5        UR-                  UR                  R                  5       5        M?     UR/                  5         S
n[)        XVS-   5       Hf  n	UR+                  U	5        X   Ul        UR1                  S5        UR2                  S:X  a  UR1                  S5        OUR1                  S5        US-  nMh     UR                  R                  U5        UR+                  U5        S1$ )N>   r   rL   OBJECT_SOLVERERRORz4Motion Tracking constraint to be converted not found	CANCELLEDz.Movie clip to use tracking data from isn't setr   r   rL   z Motion Tracking object not foundr   r_   location
QUATERNIONrotation_quaternionrotation_euler)r  rN   r   r   rO   rP   r9   r   r  copyr.  r<   r   r   rM   getrd   r   minrl   r   	frame_setr  animation_data_createkeyframe_insertrotation_mode)r   rH   rQ   rR   r9   sfraefrar  matricesrD   matr   r   r\   is                  r   _bake_object)CLIP_OT_constraint_to_fcurve._bake_object  s   ++
 AvvKK   KK	#YZ=  $$D88DKK	#ST= 88~%#*=*=//&&(CNN!!#&!O< 88&]]))FZZ"mm3377

DIO"WI'IJ#}$$++F]]))FE|}}Q'--4q!1!7!78|}}R(..4r!2!8!89  <4<=  tAX&AOOAOOBOO0023 ' 	  " tAX&AOOA&kBOz*</""#89""#34FA ' 	c"&|r   c                     UR                   nUR                   H+  nUR                  5       (       d  M  U R                  X#5        M-     S1$ r   )rH   rM   
select_getrh  )r   r   rH   rQ   s       r   r   $CLIP_OT_constraint_to_fcurve.execute  s>     --B}}!!%,   |r   r!   N)r   r   r   r   r   r   r   r   rh  r   r   r!   r   r   rR  rR    s)    : ,I&H*%J]~r   rR  c                      \ rS rSrSrSrSrSS1r\S 5       r	\
S 5       r\
S	 5       r\
S
 5       r\
S 5       r\
S 5       r\
S 5       r\
S 5       rS rS r\
S 5       r\
S 5       rS r\
S 5       r\
S 5       rS rS rS rSrg)CLIP_OT_setup_tracking_scenei  z:Prepare scene for compositing 3D objects into this footagezclip.setup_tracking_scenezSetup Tracking Scener   r   c                     UR                   nU(       a]  UR                  S:X  aM  UR                  nU(       a:  UR                  R                  R
                  R                  R                  (       a  ggNr   TF)r   r   r9   r<   rM   r   r
  is_validr   r   r[   r9   s       r   r   !CLIP_OT_setup_tracking_scene.poll%  sK    "'']*77D--44CCLLr   c                 t    U R                   nU R                  R                  Ul        SUR                  l        g NT)rH   r   r9   rP   r   use_motion_blur)r   rH   s     r   _setupScene(CLIP_OT_setup_tracking_scene._setupScene.  s+    #..33'+$r   c                    U R                   nUR                  nU(       d-  [        R                  R                  R                  SS9nX!l        SUR                  l        [        US5      (       a  SUR                  l	        g g )NWorldr        ?cyclesg?)
rH   worldr
   r   worldsr8   light_settingsr   hasattr	ao_factor)r   rH   r}  s      r   _setupWorld(CLIP_OT_setup_tracking_scene._setupWorld4  sg    HHOO''W'5EK ),%5(##-1E  * $r   c                    U R                   nUR                  (       a  UR                  $ [        R                  R                  R                  SS9n[        R                  R                  R                  SUS9nUR                  R                  R                  U5        X1l        [        R                  " S5      [        R                  " SSS5      -  [        R                  " SSS	5      -  [        R                  " S
SS5      -  Ul        U$ )NCamerar  r   )gC@gx&1gK7A`@gGz?r  ZgI+?YgX9v?X)rH   r=   r
   r   r  r8   rM   r   r   r   TranslationRotationmatrix_local)r   rH   rA   camobs       r   _findOrCreateCamera0CLIP_OT_setup_tracking_scene._findOrCreateCameraB  s    <<<<hh"""1  $$($D  %%e, 56OOE1c*+OOE1c*+ OOE1c*+ 	 r   c                 >   U R                   nUR                  nUR                  n[        R	                  U 5      nUR
                  nUR                  R                  5         UR                  R                  SS9nSUl	        SUl
        UR                  R                  Ul        SUl        UR                  R                  Ul        UR                   S   nUR                   S   nUR                  R"                  n	SU-  U	S   -
  U-  Ul        SU-  U	S   -
  U-  Ul        g )	NrL   r   Tr{  
HORIZONTALr   r_   g      ?)r   r9   r<   rn  r  r   rN   clearr8   rO   	influencer=   sensor_width
sensor_fitfocal_lengthlensrc   principal_point_pixelsshift_xshift_y)
r   r[   r9   r<   r  rA   rR   r   r   principal_point_pxs
             r   _setupCamera)CLIP_OT_setup_tracking_scene._setupCameraX  s   ww==,@@Ijj 	! ###9"#??77%??//
 		!1%__CCU{%7%::eCV|&8&;;uDr   c                 \    U R                   n[        XR                  UR                  5        g r	   rO  )r   r[   s     r   _setupViewport+CLIP_OT_setup_tracking_scene._setupViewportv  s    $Wggr||Dr   c                    U R                   nUR                  nUR                  S5      (       d4  [        U5      S:X  a  US   nSUl        OUR                  S5      nSUl        UR                  S5      (       d  UR                  S5      ng g )N
Foregroundr_   r   T
Background)rH   view_layersr]  r   r   r8   use_sky)r   rH   r  fg_bgs        r   _setupViewLayers-CLIP_OT_setup_tracking_scene._setupViewLayers{  sy    ''|,,;1$ ^& __\2BJ|,,//,/C -r   c                   ^ U4S jmU R                   R                  n[        R                  R                  R                  U5      nU(       a  UR                  (       d  S nU(       dC  [        R                  R                  R                  US9nUR                  R                  U5        g T" X25      (       d  UR                  R                  U5        g g )Nc                 Z   >  UR                    H  nX:X  a    gT" X5      (       d  M    g   g)z7Return true if collection is in any of the children or TN)children)r   collection_to_querychildcollection_in_collections      r   r  OCLIP_OT_setup_tracking_scene.createCollection.<locals>.collection_in_collection  s-    6,55&+J>> 6r   r  )
rH   r   r
   r   collectionsr]  is_editabler8   r  r   )r   collection_namemaster_collectionr   r  s       @r   createCollection-CLIP_OT_setup_tracking_scene.createCollection  s    	  $MM44XX))--o>
j44J--111GJ&&++J7 ,JJJ!**//
; Kr   c                 |  ^ U4S jmUR                   R                  R                  nUR                   R                  n[	        U5      S:X  a
  SUS   l        U R                  US5        U R                  US5        T" US   R                  R                  SS5        T" US   R                  R                  SS	5        g )
Nc                    > U  H>  nUR                   R                  U:X  a  [        X2S5          g T" UR                  X5        M@     g ru  )r   r   setattrr  )r  r  	attr_namer   setup_collection_recursivelys       r   r  TCLIP_OT_setup_tracking_scene._setupCollections.<locals>.setup_collection_recursively  s>    )
((--@J48,Z-@-@/]	 *r   r_   
foregroundr   
backgroundr  holdoutr  indirect_only)rH   r   r  r  r   r   r  layer_collection)r   r   r  vlayersr  s       @r   _setupCollections.CLIP_OT_setup_tracking_scene._setupCollections  s    	^ mm..77--++{q ".KNg|4g|4 	%L!22;;	
 	%L!22;;	
r   c                    S n[        USSSU5        UR                  nUR                  nUR                  nUR                  nSnU(       a  SUl        [        R                  R                  R                  SS5      nXTl        UR                  R                  SS9nUR                  R                  SS9n	UR                  R                  S	S9n
UR                  R                  S
SSS9  UR                  R                  SS9nUR                  R                  SS9nU(       a  UR                  R                  SS9nUR                  R                  SS9nUR                  R                  SS9nUR                  R                  SS9nUR                  R                  SS9nXkl        Xll        SUR                  S   l        U(       a  UWl        SUR                  S   l        XIl        SU	l        XHl        SUl        UR                   R                  UR"                  S
   UR                  S
   5        U(       am  UR                   R                  UR"                  S
   WR                  S
   5        UR                   R                  UR"                  S
   UR                  S
   5        O6UR                   R                  UR"                  S
   UR                  S
   5        UR                   R                  UR"                  S
   UR                  S   5        UR                   R                  U	R"                  S
   UR                  S   5        UR                   R                  UR"                  S
   UR                  S   5        UR                   R                  UR"                  S
   UR                  S   5        UR                   R                  UR"                  S
   U
R                  S
   5        UR                   R                  UR"                  S
   UR                  S
   5        [%        S5      Ul        UR&                  Ul        U=R&                  [%        S5      -  sl        U(       a_  UR&                  Wl        U=R&                  [%        S5      -  sl        UR&                  Ul        U=R&                  [%        S5      -  sl        O/UR&                  Ul        U=R&                  [%        S5      -  sl        UR&                  U	l        U	=R&                  [%        S5      -  sl        U	R&                  Ul        U=R&                  [%        S5      -  sl        UR&                  Ul        U=R&                  [%        S5      -  sl        UR&                  Ul        U=R&                  [%        S5      -  sl        UR&                  U
l        U
=R&                  [%        S5      -  sl        U
R&                  Ul        U
=R&                  [%        S 5      -  sl        g )!Nc                     SU l         g ru  )show_backdrop)r   s    r   setup_space=CLIP_OT_setup_tracking_scene._setupNodes.<locals>.setup_space  s
    "&Er   TNODE_EDITORFzTracking SetupCompositorNodeTreeCompositorNodeRLayersr   NodeGroupOutputImageOUTPUTNodeSocketColor)r   in_outsocket_typeCompositorNodeMovieClipCompositorNodeMovieDistortionCompositorNodeStabilize2DCompositorNodeScaleCompositorNodeAlphaOverCompositorNodeViewer	UndistortTypezRender Sizer  r  )g     r     u@)      i@r   )r   r  )r   g     @@)     @o@r   )r  g     @o)g     r@g      Y)r   r  )r   r   rH   compositing_node_groupr9   use_fake_userr
   r   node_groupsr8   nodes	interface
new_socketinputsdefault_valuelayerlinksoutputsr   rX  )r   r   r  r[   rH   treer9   need_stabilization	rlayer_fg	rlayer_bgoutput	movieclip
distortion	stabilizescaleshadowcatcher	alphaoverviewers                     r   _setupNodes(CLIP_OT_setup_tracking_scene._setupNodes  s   	' 	$}kR++ww" !%Dxx##''(8:NO'+$ JJNN(?N@	JJNN(?N@	%67!!wxM^!_JJNN(ANB	ZZ^^)H^I


,GHI

$9:

,EFJJNN(ANB	%;< 2=
&!/!IN-:V*&	&	 	

y((1:3D3DW3MNJJNN:--g6	8H8H8QRJJNN9,,W5u||G7LMJJNN:--g6W8MN

u}}W-}/C/CL/QR

y((1=3G3G3UV

y((193C3CL3QR

},,W5y7G7G7UV

y((16==3IJ

y((16==3IJ $O4	'00
vl33!+!4!4I&"66&//ENNNf\22N'00ENNNf\22N&//	f\22&//	f\22!&&"66*33	f_55#,,6/22 //6,//r   c                    SSK Jn  [        R                  R                  R                  US9nUR                  R                  [        U5      5        UR                  R                  SU" U5      5        [        U5      nUS-  nUR                  R                  U5        UR                  R                  U5        UR                  R                  S[        SUS5      5        UR                  R                  SU5        UR                  5         [        R                  R                  R                  XS9nU R                  R                  U5        U$ )	Nr   r  r  r   r  
loop_startvertex_indexr   )r  r  r
   r   r  r8   r  r   r   r  loopspolygonsr   updaterM   r   )	r   r   r  facesr  r  	nbr_loops	nbr_polysrQ   s	            r   _createMesh(CLIP_OT_setup_tracking_scene._createMesh3  s    3xx"""-#h-(!!$H(=>J	N	

y!)$!!,aA0FG

~u5XX!!t!>#	r   c                 (    U * U * U4X * U4X U4U * X4/$ r	   r!   )	half_sizezs     r   _getPlaneVertices.CLIP_OT_setup_tracking_scene._getPlaneVerticesK  s8     Z)Q'
A&1%Z&	
 	
r   c                 b    U R                  SS5      n/ SQnU R                  USX#5      nSUS'   U$ )Ng      @r   )r   r_         GroundT	is_groundr  r  )r   r   r  r  rQ   s        r   _createGround*CLIP_OT_setup_tracking_scene._createGroundT  s;    ))#s3j(HD;	r   c                 z    U R                   nUR                   H  nUR                  S:X  d  M  SU;   d  M  Us  $    g )NMESHr
  )rH   rM   r   )r   rH   rQ   s      r   _findGround(CLIP_OT_setup_tracking_scene._findGround]  s6    --Bww& [B%6	   r   c                      [         R                  R                  R                  SSS9n [         R                  R                  R                  SU S9n[
        R                  " S5      Ul        U$ )NLightPOINT)r   r   r   )gM@gGz?gV-@)r
   r   lightsr8   rM   r   r  r  )lightlightobs     r   _createLight)CLIP_OT_setup_tracking_scene._createLightg  sW    ##w#?((""&&G&G%112GHr   c                 v    U R                  SS5      U R                  SS5      -   nSnU R                  USX#5      $ )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   _createSampleObject0CLIP_OT_setup_tracking_scene._createSampleObjectp  sG    ))#t4""3,-
 
FHDDr   c                 |  ^
 U
4S jm
UR                   n[        R                  R                  S   n[        R                  R                  S   nSnSnUR                   H3  nUR
                  S:X  a  SnM  UR
                  S:X  d  M)  SU;  d  M1  SnM5     U(       dF  U R                  5       nUR                  R                  U5        UR                  R                  U5        U(       d  U R                  U5      nU R                  U5      n	U	(       d  U R                  U5      n	[        US	5      (       a	  T
" U5        g g )
Nc                 p   > U R                    H%  nSUl        U R                   H  nT" U5        M     M'     g)zdMake all the newly created and the old objects of a collection to be properly setup for shadow catchTN)rM   is_shadow_catcherr  )r   rQ   r  setup_shadow_catcher_objectss      r   r$  PCLIP_OT_setup_tracking_scene._setupObjects.<locals>.setup_shadow_catcher_objects  s5     !(('+$'00E07 1 )r   )r  N)r  NFLIGHTTr  r
  r|  )rH   r
   r   r  rM   r   r  r   r  r  r  r  )r   r   rH   fg_collbg_coll	has_lighthas_meshrQ   r  groundr$  s             @r   _setupObjects*CLIP_OT_setup_tracking_scene._setupObjects~  s   	8 ((&&'9:((&&'9: 	--Bww'! 	F"{"'<	   %%'EOO  'OO  ' ))'2B !!'*''0F 5(##(1 $r   c                    U R                  U5        U R                  U5        U R                  U5        U R                  U5        U R	                  U5        U R                  U5        U R                  U5        U R                  U5        S1$ r   )rw  r  r  r  r  r  r  r,  )r   r   s     r   r   $CLIP_OT_setup_tracking_scene.execute  sz    !!'"G$g&w'!7#|r   r!   N)r   r   r   r   r   r   r   r   r   r   r   rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r   r   r!   r   r   rn  rn    s/   D ,I%H*%J  , ,
 2 2  * E E: E E 0 0  < <4
<l0\  . 
 
    E(2T
r   rn  c                   >    \ rS rSrSrSrSrSS1r\S 5       r	S r
S	rg
)!CLIP_OT_track_settings_as_defaulti  z<Copy tracking settings from active track to default settingszclip.track_settings_as_defaultzTrack Settings as Defaultr   r   c                     UR                   nU(       aI  UR                  S:X  a9  UR                  nU(       a&  UR                  R                  R
                  (       a  ggrp  r   r   r9   r<   r   r   rr  s       r   r   &CLIP_OT_track_settings_as_default.poll  ?    "'']*77D,,33r   c                     UR                   nUR                  nUR                  R                  R                  nUR
                  R                  UR                  -
  S-   n[        X4U5        S1$ )Nr_   r   )	r   r9   r<   r   r   rH   r  r   r   )r   r   r[   r9   r\   r   s         r   r   )CLIP_OT_track_settings_as_default.execute  s\    ww$$++----0@0@@1D(g>|r   r!   Nr  r!   r   r   r1  r1    s0    F0I*H*%J 	r   r1  c                   F    \ rS rSrSrSrSrSS1rSrSr	\
S	 5       rS
 rSrg)CLIP_OT_track_settings_to_tracki  z;Copy tracking settings from active track to selected trackszCopy Track Settingszclip.track_settings_to_trackr   r   )ri   ro   rq   rs   ru   rw   ry   r{   r}   r   r   r   )pattern_cornersrh   rg   c                     UR                   nU(       aI  UR                  S:X  a9  UR                  nU(       a&  UR                  R                  R
                  (       a  ggrp  r3  rr  s       r   r   $CLIP_OT_track_settings_to_track.poll  r5  r   c           
      :   UR                   nUR                  nUR                  R                  R                  nUR
                  R                  UR                  -
  S-   nUR                  R                  USS9nUR                  R                   H  nUR                  (       d  M  Xt:w  d  M  UR                  R                  USS9nU R                   H  n	[        Xy[        XI5      5        M     U R                   H  n	[        X[        Xi5      5        M     M     S1$ )Nr_   Fr`   r   )r   r9   r<   r   r   rH   r  r   rd   re   r   _attrs_trackr  getattr_attrs_marker)
r   r   r   r9   r\   r   r   tmarker_selectedattrs
             r   r   'CLIP_OT_track_settings_to_track.execute  s    ""zz$$++----0@0@@1D))')?%%AxxxAJ"#))"6"6we"6"L --DAWU%9: . ..DO763HI / & |r   r!   N)r   r   r   r   r   r   r   r   r>  r@  r   r   r   r   r!   r   r   r9  r9    s@    E$H.I*%JLM  r   r9  )r
   	bpy.typesr   	bpy.propsr   	mathutilsr   r   bpy.app.translationsr   r   r   rJ   rT   r]   r   r   r   r   r   r  rK  rR  rn  r1  r9  classesr!   r   r   <module>rJ     s   
   # 6/+7\ 
+DJH JZh $/X /d.h .bK8 K\h (o8 odU8 Up 85h 5r  # %#r   