
    _hN                     D   d dl mZ d dlmZmZmZ d dlmZ  G d de	          Z
 G d de	          Z G d de	          Z G d	 d
ej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  ZdS )    N)TupleListOptionalc                       e Zd Zd ZdS )Point2MeshOutputc                 >    d | _         d | _        d | _        d | _        d S N)mesh_vmesh_fcenterpcselfs    C/tmp/cameron/UniRig/src/model/michelangelo/models/tsal/tsal_base.py__init__zPoint2MeshOutput.__init__   s"        N__name__
__module____qualname__r    r   r   r   r      s#            r   r   c                       e Zd Zd ZdS )Latent2MeshOutputc                 "    d | _         d | _        d S r	   )r
   r   r   s    r   r   zLatent2MeshOutput.__init__&   s    r   Nr   r   r   r   r   r   $   s#            r   r   c                       e Zd Zd ZdS )AlignedMeshOutputc                 h    d | _         d | _        d | _        d | _        d | _        d | _        d | _        d S r	   )r
   r   surfaceimagetextshape_text_similarityshape_image_similarityr   s    r   r   zAlignedMeshOutput.__init__-   s;    
#'	6:"7;###r   Nr   r   r   r   r   r   +   s#        < < < < <r   r   c                   b    e Zd ZU ee         ed<   d Zd Zdee	         fdZ
dee         fdZdS )ShapeAsLatentPLModulelatent_shapec                     t           r	   NotImplementedErrorr   r   argskwargss       r   encodezShapeAsLatentPLModule.encode:       !!r   c                     t           r	   r'   r   z_qr*   r+   s       r   decodezShapeAsLatentPLModule.decode=   r-   r   returnc                     t           r	   r'   r   latentsr*   r+   s       r   latent2meshz!ShapeAsLatentPLModule.latent2mesh@   r-   r   c                     t           r	   r'   r   r*   r+   s      r   
point2meshz ShapeAsLatentPLModule.point2meshC   r-   r   N)r   r   r   r   int__annotations__r,   r1   r   r   r6   r   r9   r   r   r   r$   r$   7   s         *" " "" " ""t<M7N " " " ""T2B-C " " " " " "r   r$   c                   L     e Zd ZU eeef         ed<    fdZd Zd Zd Z	 xZ
S )ShapeAsLatentModuler%   c                 H    t                                                       d S r	   superr   r   r*   r+   	__class__s      r   r   zShapeAsLatentModule.__init__J       r   c                     t           r	   r'   r8   s      r   r,   zShapeAsLatentModule.encodeM   r-   r   c                     t           r	   r'   r8   s      r   r1   zShapeAsLatentModule.decodeP   r-   r   c                     t           r	   r'   r8   s      r   query_geometryz"ShapeAsLatentModule.query_geometryS   r-   r   )r   r   r   r   r:   r;   r   r,   r1   rG   __classcell__rB   s   @r   r=   r=   G   s{         S/!!!    " " "" " "" " " " " " "r   r=   c                   h    e Zd ZU ee         ed<   d Zd Zd Zde	e
         fdZde	e         fdZdS )	AlignedShapeAsLatentPLModuler%   c                     t           r	   r'   r   s    r   set_shape_model_onlyz1AlignedShapeAsLatentPLModule.set_shape_model_onlyZ   r-   r   c                     t           r	   r'   r)   s       r   r,   z#AlignedShapeAsLatentPLModule.encode]   r-   r   c                     t           r	   r'   r/   s       r   r1   z#AlignedShapeAsLatentPLModule.decode`   r-   r   r2   c                     t           r	   r'   r4   s       r   r6   z(AlignedShapeAsLatentPLModule.latent2meshc   r-   r   c                     t           r	   r'   r8   s      r   r9   z'AlignedShapeAsLatentPLModule.point2meshf   r-   r   N)r   r   r   r   r:   r;   rM   r,   r1   r   r   r6   r   r9   r   r   r   rK   rK   W   s         *" " "" " "" " ""t<M7N " " " ""T2B-C " " " " " "r   rK   c                   \     e Zd ZU eed<   eeef         ed<    fdZd Zd Z	d Z
d Z xZS )AlignedShapeAsLatentModuleshape_modelr%   c                 H    t                                                       d S r	   r?   rA   s      r   r   z#AlignedShapeAsLatentModule.__init__n   rC   r   c                     t           r	   r'   r   s    r   rM   z/AlignedShapeAsLatentModule.set_shape_model_onlyq   r-   r   c                     t           r	   r'   r8   s      r   encode_image_embedz-AlignedShapeAsLatentModule.encode_image_embedt   r-   r   c                     t           r	   r'   r8   s      r   encode_text_embedz,AlignedShapeAsLatentModule.encode_text_embedw   r-   r   c                     t           r	   r'   r8   s      r   encode_shape_embedz-AlignedShapeAsLatentModule.encode_shape_embedz   r-   r   )r   r   r   r=   r;   r   r:   r   rM   rX   rZ   r\   rH   rI   s   @r   rS   rS   j   s         $$$$S/!!!    " " "" " "" " "" " " " " " "r   rS   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )TexturedShapeAsLatentModulec                 H    t                                                       d S r	   r?   rA   s      r   r   z$TexturedShapeAsLatentModule.__init__   rC   r   c                     t           r	   r'   r8   s      r   r,   z"TexturedShapeAsLatentModule.encode   r-   r   c                     t           r	   r'   r8   s      r   r1   z"TexturedShapeAsLatentModule.decode   r-   r   c                     t           r	   r'   r8   s      r   rG   z*TexturedShapeAsLatentModule.query_geometry   r-   r   c                     t           r	   r'   r8   s      r   query_colorz'TexturedShapeAsLatentModule.query_color   r-   r   )	r   r   r   r   r,   r1   rG   rd   rH   rI   s   @r   r^   r^   ~   st            " " "" " "" " "" " " " " " "r   r^   )torch.nnnntypingr   r   r   lightning.pytorchpytorchplobjectr   r   r   LightningModuler$   Moduler=   rK   rS   r^   r   r   r   <module>rn      s  .       ( ( ( ( ( ( ( ( ( (          v          	< 	< 	< 	< 	< 	< 	< 	<" " " " "B. " " " " " " " "") " " " " " " " "2#5 " " "&" " " " " " " "(" " " " "") " " " " "r   