ó
Bª\c           @   s»   d  d l  j Z d  d l j Z d  d l j Z d  d l Z d  d l Z d  d l	 Z
 d  d l Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d S(   iÿÿÿÿNc      	   C   s  x| D]} t  j | d ƒ } t  j | d ƒ } t  j | ƒ } d } d } t  j | d ƒ d k rƒ d } t  j | d ƒ } n  t  j | d ƒ d k r¥ d } n  t  j | d ƒ d k rÇ d } n  t  j | d ƒ d	 k ré d	 } n  t  j | d
 d d d d d ƒ}	 t  j | d ƒ }
 t  j d | ƒ } t | ƒ } t  j | d ƒ } t  j | d ƒ } i | d 6| d 6| d d | d d | d d g d 6|	 d |	 d |	 d g d 6| d | d | d g d 6|
 d d |
 d d |
 d d g d 6|  d | d | <q W|  S(   Ns   .colors
   .intensityt   pointi    t	   spotLights
   .coneAnglet
   pointLightt   ambientLightt   directionalLightt   qi   t   translationt
   worldSpaces   .scales   %s.worldMatrixu   lightStrengthu	   coneAnglei   u   colouru   positionu   rotationu   scalet   lightst	   animation(   t   cmdst   getAttrt   listRelativest   nodeTypet   xformt   convertRotations(   t   aeDictionaryR   t   framet   objt   lightColourt   lightIntensityt
   lightShapet	   lightTypet	   coneAnglet   framePositiont   frameScaleOutt   frameMatrixListt   frameRotationt   frameLightColourt   frameLightIntensity(    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getLightFrameForAE	   s.    			!°c      	   C   sÞ   x× | D]Ï } t  j | d d d d d d ƒ} t  j | d ƒ } t  j d | ƒ } t | ƒ } i | d | d | d g d	 6| d | d | d g d
 6| d d | d d | d d g d 6|  d | d | <q W|  S(   NR   i   t   wst   rps   .scales   %s.worldMatrixi    i   u   positionu   rotationu   scalet   solidsR	   (   R
   R   R   R   (   R   R!   R   R   R   R   R   R   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getSolidFrameForAE&   s    !zc      	   C   sÞ   x× | D]Ï } t  j | d d d d d d ƒ} t  j | d ƒ } t  j d | ƒ } t | ƒ } i | d | d | d g d	 6| d | d | d g d
 6| d d | d d | d d g d 6|  d | d | <q W|  S(   NR   i   R   R   s   .scales   %s.worldMatrixi    i   u   positionu   rotationu   scalet   nullsR	   (   R
   R   R   R   (   R   R#   R   R   R   R   R   R   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getNullFrameForAE0   s    !zc      	   C   sR  xK| D]C} t  j | ƒ } t  j | d d ƒ } t  j | d d ƒ } | d 9} t  j | d d d d d d ƒ} t  j | d	 ƒ } t  j d
 | ƒ }	 t |	 ƒ }
 t  j | ƒ } t  j | d d ƒ } t  j | d d ƒ } | d 9} i | d 6| d 6| d | d | d g d 6|
 d |
 d |
 d g d 6|  d | d | <q W|  S(   Ni    s   .focalLengths   .horizontalFilmAperturegffffff9@R   i   R   R   s   .scales   %s.worldMatrixu   focalLengthu   horizontalFilmPlanei   u   positionu   rotationt   camerasR	   (   R
   R   R   R   R   (   R   R%   R   R   t   shapest   focalLengtht   horizontalViewPlaneR   R   R   R   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getCameraFrameForAE9   s    
!
`c      	   C   s  i  |  d <xú| D]ò} t  j | d d d d d d ƒ} t  j d | ƒ } t | ƒ } t  j | d ƒ } t  j | d ƒ }	 t  j | d	 ƒ }
 t  j | ƒ } d
 } d } t  j | d ƒ d k rà d } t  j | d ƒ } n  t  j | d ƒ d k rd } n  t  j | d ƒ d k r$d } n  t  j | d ƒ d k rFd } n  i | d 6|
 d 6| d 6|	 d d |	 d d |	 d d g d 6| d | d | d g d 6| d | d | d g d 6| d d | d d | d d g d 6|  d | <i  |  d | d <q W|  S(   NR   R   i   R   R   s   %s.worldMatrixs   .scales   .colors
   .intensityR    i    R   s
   .coneAngleR   R   R   u	   lightTypeu   lightStrengthu	   coneAnglei   u   colouru   positionu   rotationu   scaleR	   (   R
   R   R   R   R   R   (   R   R   t
   startFramet   endFrameR   t   positiont
   matrixListt   rotationt   scaleOutR   R   R   R   R   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getLightsForAEM   s.    
!			«c   	   	   C   sò   i  |  d <xá | D]Ù } t  j | d d d d d d ƒ} t  j d | ƒ } t | ƒ } t  j | d ƒ } i | d | d | d	 g d
 6| d | d | d	 g d 6| d d | d d | d d	 g d 6|  d | <i  |  d | d <q W|  S(   NR!   R   i   R   R    s   %s.worldMatrixs   .scalei    i   u   positionu   rotationu   scaleR	   (   R
   R   R   R   (	   R   R!   R*   R+   R   R,   R-   R.   R/   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getSolidsForAEk   s    
!nc   	   	   C   sò   i  |  d <xá | D]Ù } t  j | d d d d d d ƒ} t  j d | ƒ } t | ƒ } t  j | d ƒ } i | d | d | d	 g d
 6| d | d | d	 g d 6| d d | d d | d d	 g d 6|  d | <i  |  d | d <q W|  S(   NR#   R   i   R   R   s   %s.worldMatrixs   .scalei    i   u   positionu   rotationu   scaleR	   (   R
   R   R   R   (	   R   R#   R*   R+   R   R,   R-   R.   R/   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getNullsForAEx   s    
!nc      	   C   sW  i  |  d <xF| D]>} t  j | d d d d d d ƒ} t  j | d ƒ } t  j d | ƒ } t | ƒ } t  j | ƒ }	 t  j |	 d d	 ƒ }
 t  j |	 d d
 ƒ } | d 9} t  j | d ƒ i |
 d 6| d 6| d | d | d g d 6| d | d | d g d 6| d d | d d | d d g d 6|  d | <i  |  d | d <q W|  S(   NR%   R   i   R   R   s   .scales   %s.worldMatrixi    s   .focalLengths   .horizontalFilmAperturegffffff9@t	   perspViewu   focalLengthu   horizontalFilmPlanei   u   positionu   rotationu   scaleR	   (   R
   R   R   R   R   t   lookThru(   R   R%   R*   R+   R   R,   R/   R-   R.   R&   R'   R(   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   getCamerasForAE…   s    
!
|c    !   	   C   sæ  t  j d ƒ }  t  j d ƒ } t j j d ƒ } t  j d t d t ƒ } t  j d t d t ƒ } t  j d t d t d	 t ƒ } i |  | g d
 6} | | d <| | d <| | d <| | d <t  j d ƒ rØ t  j	 d ƒ n$ t j d ƒ } t j d | d ƒ t  j	 d ƒ } t  j
 d t ƒ }	 t |	 ƒ d k rVt j d ƒ }
 t j d |
 d ƒ n  t  j d d ƒ } x4 | D], } t  j | d d ƒt  j | d t ƒqoWg  } g  } g  } g  } g  } xZ|	 D]R} t  j | ƒ } t  j | d ƒ d k r| j | ƒ n  t  j | d ƒ d k r+| j | ƒ n  t  j | d ƒ d k rT| j | ƒ n  t  j | d ƒ d k s¸t  j | d ƒ d k s¸t  j | d ƒ d  k s¸t  j | d ƒ d! k rÈ| j | ƒ n  t  j | ƒ d" k rí| j | ƒ n  t  j | d ƒ d# k rÄ| j | ƒ qÄqÄWxf | D]^ } t  j | ƒ } xF | D]> } t  j | ƒ } t  j | d ƒ d k r=| j | ƒ q=q=Wq!Wt | | | | ƒ t | | | | ƒ t | | | | ƒ t | | | | ƒ xz t t | ƒ t | d ƒ ƒ D]Y } t  j | d$ d ƒt | | | ƒ t | | | ƒ t | | | ƒ t | | | ƒ qïWt j | d% d& ƒ} d' } d( } t j d) ƒ } t  j d* d+ d, d d- | d. | ƒ } t | ƒ d k r»d/ } n  | d  k sÝt | d ƒ d k rt j d0 ƒ } t j d | d1 ƒ n¨ y” | d } | o&t  j! j" | ƒ } t# | d2 ƒ } zQ | j$ | ƒ t j d3 ƒ } | d4 | GHt j d5 ƒ }  t j d |  d1 ƒ Wd  | j% ƒ  XWn t& k
 r«n Xt  j d d ƒ } x! | D] } t  j | d d ƒqÅWd  S(6   Ns   defaultResolution.widths   defaultResolution.heights   currentTimeUnitToFPS;t   maxTimeR   t   minTimet	   sceneNamet	   shortNamet   queryu
   resolutiont	   frameRatet   animationLengtht   animationStartt   projectNamet   MayaToAEs,   getPluginResource("MASH", "kAEInstructions")s   MASHinViewMessage("s   ", "Error"); t	   selectioni    s/   getPluginResource("MASH", "kNoObjectsToExport")t   typet
   modelPanelt   statei   t   addSelectedt   camerat   mesht   locatorR   R   R   R   t   lookAtt	   transformt   updatet   indenti   s   *.jsont    s,   getPluginResource("MASH", "kExportLocation")t   dialogStylei   t   fmt
   fileFiltert   captiont   MayaSceneToAEs-   getPluginResource("MASH", "kExportCancelled")s   ", "Warning"); t   ws-   getPluginResource("MASH", "kSceneExportedTo")t    s&   getPluginResource("MASH", "kExportOk")('   R
   R   t   mayat   melt   evalt   playbackOptionst   Truet   filet	   objExistst   selectt   lst   lent   getPanelt   isolateSelectR   R   t   appendR1   R5   R2   R0   t   ranget   intt   currentTimeR   R"   R)   R$   t   jsont   dumpst   fileDialog2t   Nonet   ost   patht   normpatht   opent   writet   closet   IOError(!   t   widtht   heightR;   R6   R7   R8   R   t   kAEInstructionst   allSetObjectst
   everythingt   kNoObjectsToExportt   modelPanelst   panesR#   R   R!   R%   t
   aimCamerasR   R&   t   childrent   groupChildrent   objectsR   t   toWritet   basicFiltert   saveLocationt   kExportLocationt   kExportCancelledt   fileNamet   ft   kSceneExportedTot   kExport(    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt
   exportToAE   sª    



d&$	"
c         C   s   t  j ƒ  } t  j j |  | ƒ t  j | ƒ } | j ƒ  } | j d ƒ g  | j | j | j	 f D] } t
 j | ƒ ^ q` } | S(   Ni   (   t   omt   MMatrixt   MScriptUtilt   createMatrixFromListt   MTransformationMatrixt   eulerRotationt	   reorderItt   xt   yt   zt   matht   degrees(   R-   t   mMatrixt   mTransformMtxt   eulerRott   angleR.   (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyR     s    4(   t   maya.OpenMayat   OpenMayaR…   t   maya.melRU   t	   maya.cmdsR
   Rd   R   t   os.pathRh   RT   R   R"   R$   R)   R0   R1   R2   R5   R„   R   (    (    (    sI   S:/Maya_2019_DI/build/Release/runTime/plug-ins/MASH/scripts/exportToAE.pyt   <module>   s    		
								u