
    pjZ                         d dl Z d dlZd dlZe j                  j	                  dd      Z ej                  e      ej                  d<   d dlm	Z	 ddl
mZmZ ddlmZ dd	lmZ dd
lmZ d Zd Zd Zd Zd Zd Zy)    NVTK_MODULE_NAME
vtkmodules
vtk_module)vtkColorTransferFunction   )data_table_to_listlinspace)
class_name)reference_id)cache_propertiesc                    |j                         }ddg}t        |d      r	 |j                  |       |j	                         }t        |j                               }|j                         ||||j                         |j                         |j                         |j                         rdnd|j                         rdnd|j                         |j                         |j                         |j!                         |j#                         d}	|r||	d<   t%        |       |t'        |      t)        |||	      dS # t        $ r Y w xY w)	Ng      ?r   GetHueRangeTF)numberOfColors
valueRangehueRangesaturationRangenanColorbelowRangeColoraboveRangeColoruseAboveRangeColoruseBelowRangeColoralpha
vectorSizevectorComponent
vectorModeindexedLookuptableparentidtype
properties)GetRangehasattrr   	ExceptionGetSaturationRanger   GetTableGetNumberOfColorsGetNanColorGetBelowRangeColorGetAboveRangeColorGetUseAboveRangeColorGetUseBelowRangeColorGetAlphaGetVectorSizeGetVectorComponentGetVectorModeGetIndexedLookupr   r
   r   )
r   lookup_tablelookup_table_idcontextdepthlookup_table_rangelookup_table_hue_rangelut_sat_ranger   r"   s
             \/DATA/.local/lib/python3.12/site-packages/trame_vtk/modules/vtk/serializers/lookup_tables.pylookup_table_serializerr;      sJ    &..0!1X|]+	$$%;< !335M|4467E&88:(*( ,,.'::<'::<&2&H&H&JdPU&2&H&H&JdPU&&("002'::<"002%668J$ #
7 v&<(&L	 5  		s   D: :	EEc           	      z   | j                         }t        |      }|s| j                          t        |      }|r|t               }|j	                  |        | j                         }t        |dt        |      i}t        ||      D ],  \  }} |j                  |g|d d D cg c]  }|dz  	 c}  . |S y c c}w )Nnum      )
r'   r   Buildr   DeepCopyGetTableRanger	   lenzipAddRGBPoint)r3   
data_tabler   ctftable_rangepointsxrgbas           r:   'lookup_table_to_color_transfer_functionrL   ?   s    &&(Jz*E":.&(\""002;7CJ765)GAtCOOA<$r( ;(QS( ;< * 
	 !<s   !B8c                 <    t        |      }|rt        | ||||      S y )N)rL   "color_transfer_function_serializer)r   r3   r4   r5   r6   rG   s         r:   lookup_table_serializer2rO   U   s,    
1,
?C
1C'5
 	
     c                    g }t        |j                               D ])  }g d}|j                  ||       |j                  |       + d}|j                         }	t	        |d      r<t	        |d      r|j                         nd}t	        |d      r|j                         nd}	t        |       |t        |      t        |||j                         rdnd|j                         |j                         rdnd|j                         rdnd|j                         |j                         |j!                         |j#                         |j%                         ||	|d      dS )	N)r   r   r   r   r   r   r   GetDiscretizeGetNumberOfValues   r   )clamping
colorSpacehSVWrapallowDuplicateScalarsr   r   r   r   r   nodesnumberOfValues
discretizer   )rangeGetSizeGetNodeValueappendr$   rR   rS   r   r
   r   GetClampingGetColorSpace
GetHSVWrapGetAllowDuplicateScalarsr.   r0   r/   r1   r2   )
r   instanceobj_idr5   r6   rY   inoder[   number_of_valuess
             r:   rN   rN   _   sY   E8##%&!a&T	 ' J'')x)(//(JH""$PQ 	
 x!45 &&( 	 v&8$&!)!5!5!7AQ&446 ( 3 3 511 446 *+!**,#+#>#>#@&446&446!)!:!:!<"2('
	 rP   c                 |    t        | ||||      }|j                         |d   d<   |j                         |d   d<   |S )Nr"   r[   rZ   )rN   rR   rS   )r   rd   re   r5   r6   rG   s         r:   0discretizable_color_transfer_function_serializerrj      sM     -VXvwPU
VC&.&<&<&>Cl#*2*D*D*FC&'JrP   c                 H   g }t        |j                               D ])  }g d}|j                  ||       |j                  |       + t	        |       |t        |      t        ||t        |j                               |j                         |j                         |d      dS )N)r   r   r   r   )r\   rU   rX   rY   r   )r\   r]   r^   r_   r   r
   r   listr#   r`   rc   )r   rd   re   r5   r6   rY   rf   rg   s           r:   pwf_serializerrm      s    E8##%&a&T	 ' v&8$&h//12$002)1)J)J)L		
	 rP   )os	importlibsysenvirongetvtk_module_nameimport_modulemodulesvtk_module.vtkRenderingCorer   helpersr   r	   registryr
   utilsr   cacher   r;   rL   rO   rN   rj   rm    rP   r:   <module>r|      sm    	  
**..!2LA3I33ODL  @ 1    #)^,1hrP   