ó
Dª\c           @   st   d  d l  Td  d l j Z d  d l j j Z d e j	 f d „  ƒ  YZ
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(	   iÿÿÿÿ(   t   *Nt   AECallbacksManagerc           B   s  e  Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z g  Z d Z d Z d Z d Z i  Z i  Z g  Z d Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& RS(   c         C   s²   g  |  _  t j j t j j |  j d  ƒ } |  j  j t | ƒ ƒ t j j t j j	 |  j d  ƒ } |  j  j t | ƒ ƒ t j j t j j
 |  j d  ƒ } |  j  j t | ƒ ƒ d  S(   N(   t   sceneCallbackst   nomt   MSceneMessaget   addCallbackt   kBeforeOpent   sceneClosingt   Nonet   appendt   MCallbackIdWrappert
   kBeforeNewt   kBeforeImport(   t   selft   cb(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   registerSceneCloseCallbacks   s    	!!!c         C   sé   g  |  _  t j j t j j |  j d  ƒ } |  j  j t | ƒ ƒ t j j t j j	 |  j d  ƒ } |  j  j t | ƒ ƒ t j j t j j
 |  j d  ƒ } |  j  j t | ƒ ƒ t j j t j j |  j d  ƒ } |  j  j t | ƒ ƒ d  S(   N(   R   R   R   R   t
   kAfterOpent   sceneOpenedR   R	   R
   t	   kAfterNewt   kAfterImportt   kMayaExiting(   R   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   registerSceneOpenCallbacks'   s    	!!!!c         C   s   g  |  _  d  S(   N(   R   (   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   deregisterSceneCallbacks2   s    c         C   s9  t  ƒ  |  _ |  j |  j _ |  j |  j _ t j j |  j d d  ƒ |  _	 t
 j j |  j d  ƒ |  _ t j j |  j d  ƒ |  _ |  j j t j d t d d |  j g ƒ ƒ |  j j t j d t d d |  j g ƒ ƒ |  j j t j d t d d |  j g ƒ ƒ t j j d |  j ƒ |  _ t j j d |  j ƒ |  _ d  S(	   Nt	   transformt   runOncet   attributeChanges   defaultResolution.widths   defaultResolution.heights   defaultResolution.pixelAspectt   timeUnitChangedt   playbackRangeSliderChanged(   t   DAGCallbackManagert   dagCallbackManagert   manageRenamet   scrJobR   t
   MDGMessaget   addNodeRemovedCallbackt   nodeRemovedCallbackR   t   nodeDeleteCallbackt   omat   MAnimMessaget   addAnimCurveEditedCallbackt   animCurveEditedt   animCurveCallbackt   addTimeChangeCallbackt   timeChangedt   timeChangedCallbackt   prefJobsR	   t   cmdst	   scriptJobt   Falset   prefsChangedt   MEventMessaget   addEventCallbackt   frameRateCallbackt   playbackCallback(   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   registerCallbacks5   s    +++c         C   s„  |  j  r( t j j |  j  ƒ d  |  _  n  |  j rP t j j |  j ƒ d  |  _ n  |  j rx t j	 j |  j ƒ d  |  _ n  x$ |  j
 j ƒ  D] } |  j | ƒ qˆ Wx$ |  j j ƒ  D] } |  j | ƒ q¯ W|  j rè |  j j ƒ  d  |  _ n  x< |  j D]1 } t j d | ƒ rò t j d | d t ƒ qò qò Wg  |  _ |  j rXt j j |  j ƒ d  |  _ n  |  j r€t j j |  j ƒ d  |  _ n  d  S(   Nt   existst   killt   force(   R#   R   t   MMessaget   removeCallbackR   R(   R$   R%   R+   R    t   renameCallbackst   keyst   removeRenameCallbackt   attrJobst   deregisterNodeAttrJobsR   t	   removeAllR,   R-   R.   t   TrueR3   R4   (   R   t   uuidt   job(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   deregisterCallbacksD   s4    							c         C   s.   |  j  | ƒ |  j | ƒ |  j j | ƒ d  S(   N(   t   addRenameCallbackt   registerNodeAttrJobsR   t   registerNode(   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRG   n   s    c         C   s:   |  j  | ƒ |  j | ƒ |  j r6 |  j j | ƒ n  d  S(   N(   R=   R?   R   t
   removeNode(   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   deregisterNodev   s    	c   
      C   s»   t  j | d t ƒd } | |  j k r8 i  |  j | <n  |  j | } t j | ƒ } | d } | d } xL t | ƒ D]> \ } } | | k ru | | }	 |  j |	 | | ƒ | | <qu qu Wd  S(   Nt   longi    t	   mayaAttrst   apiAttrs(   R-   t   lsRA   R>   t   AEUtilst   getValidAttributest	   enumeratet   registerJob(
   R   RB   t   namet   jobst   vAttrsRK   RL   t   it   apiAttrt   attr(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRF      s    


c            s1   ‡  ‡ ‡ f d †  } t  j d t d | | g ƒ S(   Nc              s   ˆ j  ˆ ˆ  ƒ S(   N(   R   (    (   RV   R   RB   (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   <lambda>’   s    R   R   (   R-   R.   R/   (   R   RW   RV   RB   t   func(    (   RV   R   RB   sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRQ   ‘   s    c         C   st   | |  j  k r d  S|  j  | } xC | D]; } | | } t j d | ƒ r' t j d | d t ƒ q' q' W|  j  | =d  S(   NR6   R7   R8   (   R>   R-   R.   RA   (   R   RB   RS   RW   RC   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR?   •   s    
c         C   sN   t  j | d t ƒd } t j | ƒ } t j j | |  j | ƒ |  j	 | <d  S(   NRJ   i    (
   R-   RM   RA   RN   t   getMObjectFromNameR   t   MNodeMessaget   addNameChangedCallbackt
   objRenamedR;   (   R   RB   RR   t   node(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRE   ¡   s    c         C   s7   | |  j  k r3 t j j |  j  | ƒ |  j  | =n  d  S(   N(   R;   R   R[   R:   (   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR=   ¦   s    c         C   s   |  j  | ƒ |  j | ƒ d  S(   N(   R=   RE   (   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt
   renameNode«   s    c         C   s   |  j  j | ƒ S(   N(   R   t   isObservableParent(   R   t   pUUID(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR`   ¯   s    c         C   s   |  j  j | ƒ S(   N(   R   t   getAffectedNodeNamesByParent(   R   Ra   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRb   ²   s    c         C   s   |  j  | | ƒ d  S(   N(   R   (   R   RB   RW   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt	   dagScrJobµ   s    c         C   s   |  j  | ƒ d  S(   N(   R   (   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   dagManageRename¸   s    N('   t   __name__t
   __module__R   R   R   R   R]   R   R"   R'   R*   R0   R   R   R#   R(   R+   R;   R>   R,   R3   R4   R   R   R   R5   RD   RG   RI   RF   RQ   R?   RE   R=   R_   R`   Rb   Rc   Rd   (    (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR      sH   						*												R   c           B   s›   e  Z d Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         G   s8   t  j |  | Œ i  |  _ t j j |  j d  ƒ |  _ d  S(   N(	   t   dictt   __init__t   allRegisteredParentsR   t   MDagMessaget   addParentAddedCallbackt   parentChangedR   t
   callbackId(   R   t   args(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRh   À   s    	c         C   s  t  | j ƒ  j d ƒ d ƒ d k r) d  S|  j | ƒ } t |  j ƒ  ƒ j t | ƒ ƒ } x¡| D]™} t j | d t	 ƒd } t
 j | ƒ } g  | D] }	 t j |	 d t	 ƒd ^ q• }
 |  | d j ƒ  } t | ƒ j t |
 ƒ ƒ } t |
 ƒ j t | ƒ ƒ } |  | } | d } xS | D]K } t j | d t	 ƒd } |  j | | ƒ } |  j | | ƒ | | | <qWxK | D]C } | | k ru| | } |  j | ƒ |  j | | ƒ | | =ququW|  j | ƒ |  j | d ƒ |  j | d ƒ |  j | d	 ƒ q` Wd  S(
   Nt   |iÿÿÿÿi    RJ   RB   t   pJobst	   translatet   rotatet   scale(   t   lent   fullPathNamet   splitt   getTreet   setR<   t   intersectionR-   RM   RA   RN   t   getAllParentst
   differencet   registerObjParentt   addParentToRegistert   clearNodeParentJobst   removeParentFromRegisterR   R   (   R   t   childt   parentt
   clientDatat	   childTreet   affectedRB   RR   t   parentNamest   xt   parentUUIDst
   oldParentst   removedParentst   addedParentst   nodeDatat   allParentJobsRa   t   pNamet
   parentJobst   nodeParentJobs(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRl   Å   s8    % !,


c         C   sb   | |  k r d  St  j | d t ƒd } t j | ƒ } i  } |  j | | ƒ | d <| |  | <d  S(   NRJ   i    Rp   (   R-   RM   RA   RN   t   getDagPathFromNamet   getAllParentJobs(   R   RB   t   nodeNamet   nodeDagPathR‹   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRG   è   s    c         C   sk   | |  k r d  S|  | } xC | d j  ƒ  D]1 } | d | } |  j | ƒ |  j | | ƒ q+ W|  | =d  S(   NRp   (   R<   R~   R   (   R   RB   R‹   Ra   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRH   ò   s    
c         C   s;   x! |  j  ƒ  D] } |  j | ƒ q Wt j j |  j ƒ d  S(   N(   R<   RH   R   R9   R:   Rm   (   R   RB   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR@   þ   s    c         C   s@   x9 | D]1 } t  j d | ƒ r t  j d | d t ƒ q q Wd  S(   NR6   R7   R8   (   R-   R.   RA   (   R   R   t   pJob(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR~     s    c         C   so   t  j | ƒ } i  } xS | D]K } t j | d t ƒd } |  j | | ƒ } |  j | | ƒ | | | <q W| S(   NRB   i    (   RN   Rz   R-   RM   RA   R|   R}   (   R   R’   RB   t   nodeParentsRŒ   t
   nodeParentRa   RŽ   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR‘     s    c         C   sY   g  } xL t  j D]A } | d | } | d | } |  j | | ƒ } | j | ƒ q W| S(   Nt   .(   RN   t
   commonAttrRQ   R	   (   R   R’   R–   t   jobIdsRW   t   plugNamet   argt   jobId(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR|     s    c            ss   t  j ˆ  j d ƒ d d t ƒd ‰ d j ˆ  j d ƒ d ƒ ‰  t  j d t d | ‡  ‡ ‡ f d †  g ƒ } | S(   NR—   i    RB   i   R   R   c              s   ˆ j  ˆ t ˆ  ƒ ƒ S(   N(   R   t   str(    (   R›   R   RB   (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRX     s    (   R-   RM   Rv   RA   t   joinR.   R/   (   R   Rš   R›   Rœ   (    (   R›   R   RB   sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRQ     s    &-c         C   s:   | |  j  k r& |  j  | j | ƒ n | g |  j  | <d  S(   N(   Ri   R	   (   R   Ra   t   nodeUUID(    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR}   "  s    c         C   sf   | |  j  k rb | |  j  | k r9 |  j  | j | ƒ n  t |  j  | ƒ d k rb |  j  | =qb n  d  S(   Ni    (   Ri   t   removeRt   (   R   Ra   RŸ   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR   (  s
    c         C   s   | |  j  k S(   N(   Ri   (   R   Ra   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR`   /  s    c         C   sH   |  j  | ƒ r@ g  |  j | D] } t j | d t ƒd ^ q Sg  Sd  S(   NRJ   i    (   R`   Ri   R-   RM   RA   (   R   Ra   R†   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRb   2  s    1c         C   sN   | |  k rJ |  | } g  | d j  ƒ  D] } t j | d t ƒd ^ q' Sg  S(   NRp   RJ   i    (   R<   R-   RM   RA   (   R   RŸ   R‹   R†   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   getAllNodeParentNames8  s    
4c         C   s©   | j  ƒ  } t j | ƒ s7 t j | d t ƒd k r; g  St j | d t ƒd } | g } xE t | j ƒ  ƒ D]1 } t j	 | j
 | ƒ ƒ } | |  j | ƒ 7} qp W| S(   Nt   apit
   kTransformRB   i    (   Ru   R-   t	   objExistst   nodeTypeRA   RM   t   xranget
   childCountR   t
   MFnDagNodeR€   Rw   (   R   t   dagRR   RB   t   childrenRU   R€   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRw   >  s    +	N(   Re   Rf   R   R   R   Rh   Rl   RG   RH   R@   R~   R‘   R|   RQ   R}   R   R`   Rb   R¡   Rw   (    (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR   ¼   s"   		#	
				
	
						R
   c           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sQ   Wrapper class to handle cleaning up of MCallbackIds from registered MMessage
    c         C   s    t  t |  ƒ j ƒ  | |  _ d  S(   N(   t   superR
   Rh   Rm   (   R   Rm   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyRh   O  s    c         C   s   t  j j |  j ƒ d  S(   N(   R   R9   R:   Rm   (   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   __del__S  s    c         C   s   d |  j  S(   Ns   MCallbackIdWrapper(%r)(   Rm   (   R   (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   __repr__V  s    (   Re   Rf   t   __doc__Rh   R¬   R­   (    (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyR
   L  s   		(   t   maya.app.flux.importst   MayaToAE.utilst   utilsRN   t   maya.api.OpenMayaAnimR¢   t   OpenMayaAnimR$   t   qtt   QObjectR   Rg   R   t   objectR
   (    (    (    sQ   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/MayaToAE/callbacks.pyt   <module>   s
   
µ