
    h              	          d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 ddl
mZ ddlmZmZmZ ddlmZmZmZ dd	lmZmZ dd
lmZmZ ddlmZmZ ddlmZ e G d de                      Zdededeee         ee         f         fdZ dS )    )defaultdict)	dataclass)UnionListTuple)deepcopy   )Asset)AugmentConfigAugmentget_augments)OrderConfigOrder	get_order)SamplerConfigget_sampler)VertexGroupConfigget_vertex_groups)
TailConfigget_tail)
ConfigSpecc                       e Zd ZU dZeedf         ed<   dZeedf         ed<   dZ	ee
df         ed<   dZeedf         ed<   dZeedf         ed<   ed
d	            ZdS )TransformConfig)NNtail_configorder_configvertex_group_configaugment_configsampler_configreturnc                    |                      |           |                    dd           }|                    dd           }|                    dd           }|                    dd           }|                    dd           }|t          j        |          }|t	          j        |          }|t          j        |          }|t          j        |          }|t          j        |          }t          |||||          S )Nr   r   r   r   r   config)r   r   r   r   r   )	
check_keysgetr   parser   r   r   r   r   )clsr"   r   r   r   r   r   s          4/data/cameron/tmprepos/2unirig/src/data/transform.pyr%   zTransformConfig.parse   s   vjj55zz.$77$jj)>EE$4d;;$4d;;"$*+>>>K#&,LAAAL*"3"9AT"U"U"U%*0GGGN%*0GGGN#% 3))
 
 
 	
    )r   r   )__name__
__module____qualname__r   r   r   __annotations__r   r   r   r   r   r   r   r   classmethodr%    r(   r'   r   r      s          */Kz4'(...+0L%T)*0008=0$67===/4NE--.444/4NE--.444
 
 
 [
 
 
r(   r   assettransform_configr   c                    t          |t                    sJ dt          |                       |j        +t	          |j                  }|                    |            |j        +t          |j                  }|                     |           |j	        rt          |j	                  \  }}ng }g }i }|D ]} |j        dd| i| |j        Mt          |j                  }i }	|D ]+}
|	                    |
                    |                      ,|	| _        ni | _        |D ]} |j        dd| i| |j        Pt%          |j                  }|                    |           }|j        | _        |j        | _        |j        | _        nU| j                                        | _        | j                                        | _        t7          | j                  | _        ||fS )Nzfound r!   )r/   )orderr/   r.   )
isinstancer   typer   r   process_tailr   r   	set_orderr   r   	transformr   r   updateget_vertex_groupvertex_groupsr   r   sampleverticessampled_verticesnormalssampled_normalssampled_vertex_groupscopyvertex_normalsr   )r/   r0   tailr2   first_augmentssecond_augmentskwargsaugmentr:   dvsamplerress                r'   transform_assetrL   7   sB    &88[[:[4HXCYCY:[:[[[8 #//;<<<&&& $0!1!>???e$$$ & *6>N>]*^*^*^'F! 1 10000000 +7)1A1UVVV 	6 	6AHHQ''e'445555  # 1 10000000 &2%5%DEEEnn5n))&)l&)k&)&7##&+n&9&9&;&;&+&:&?&?&A&A&.u/B&C&C#?**r(   N)!collectionsr   dataclassesr   typingr   r   r   rA   r   r/   r
   rG   r   r   r   r2   r   r   r   rJ   r   r   vertex_groupr   r   rC   r   r   specr   r   rL   r.   r(   r'   <module>rR      s   # # # # # # ! ! ! ! ! ! % % % % % % % % % %             9 9 9 9 9 9 9 9 9 9 0 0 0 0 0 0 0 0 0 0 / / / / / / / / > > > > > > > > & & & & & & & &      
&
 &
 &
 &
 &
j &
 &
 &
P4+4+%4+ 4=$w-'(4+ 4+ 4+ 4+ 4+ 4+r(   