
    pjO                     j    d dl Z d dlZd dlZddlmZmZmZmZ d Zd Z	d Z
i Zd Zd Zd	 Zd
dgfdZy)    N   )array_types_mappingget_js_array_typehash_data_arrayreference_idc                     |D ]  }|| u s y y)NTF )arrayarraysas      V/DATA/.local/lib/python3.12/site-packages/trame_vtk/modules/vtk/serializers/helpers.pyis_array_inr      s    :      c           	         t         | j                            }t        j                  |      }| j	                         }| j                         }||z  }|dk7  rt        j                  t        |             5 }t        t        j                  ||z  |j                  |                  }d d d        t        ||z        D cg c]  }||z  |dz   |z    c}S y # 1 sw Y   2xY wc c}w )N r   )r   GetDataTypestructcalcsizeGetNumberOfValuesGetNumberOfComponentsioBytesIO
memoryviewlistunpackreadrange)	
data_table	data_typeelement_size	nb_valuesnb_componentsnbytesstreamdataidxs	            r   data_table_to_listr'      s    #J$:$:$<=I??9-L,,.I446MI%FCZZ
:./6i)&;V[[=PQRD 0 Y-78
8 }$a='@A8
 	

  0/
s   52C?C$C!c                 `    || z
  |dz
  z  }t        |      D cg c]
  }| ||z  z    c}S c c}w )Nr   )r   )startstopnumdeltais        r   linspacer.   '   s9    E\cAg&E',Sz2z!EAIz222s   +c                     t        |       }d }|t        v r	t        |   }|r|d   | j                         k(  r|d   S t        |       | j                         d}|t        |<   |d   S )Nmtimesha)r1   r0   )r   data_array_sha_mappingGetMTimer   )r
   obj_idrecords      r   digestr6   /   sn    % FF'''/&/U^^%55e}$U+enn6FGF%+6"%=r   c                 t    | j                  |      }i }|d   |d<   |d   |d<   | j                  |      |d<   |S )Nr   minr   max	component)GetRangeGetComponentName)r
   r:   r
comp_ranges       r   get_range_infor?   B   sL    y!AJ!Ju!Ju#44Y?J{r   c                 r   | sy t        |       }|j                  || | j                         t        j                         d|       i }||d<   d|d<   | j	                         |d<   |j                  dt        |             |d<   | j                         |d<   | j                         | j                         z  |d<   g |d	<   |d   d
kD  rQt        |d         D ]   }|d	   j                  t        | |             " |d	   j                  t        | d             |S |d	   j                  t        | d             |S )N)r
   mTimetshashvtkDataArrayvtkClassnamedataTypenumberOfComponentssizerangesr   r   )r6   cache_data_arrayr3   timeGetNamegetr   r   GetNumberOfTuplesr   appendr?   )r
   contextkwargsp_md5rootr-   s         r   get_array_descriptionrV   N   s;   5ME)9WPVW DDL%D==?DLzz*.?.FGD!&!<!<!>D	..053J3J3LLDLDN !A%t012AN!!.":; 3XnUB78 K 	XnUA67Kr   NormalsTCoordsc                    g }d|v }|s|rk|j                  d      rY|}|j                         }|j                         }	|	dk(  r|j                         n|j	                         }
|j                         }|rT|dv rP|j                         j                  |
      }||j                         j                         }|j                  |       |rT|dv rP|j                         j                  |
      }||j                         j                         }|j                  |       |rT|dk(  rO|j                         j                         }||j                         j                         }|j                  |       |r\|j                  d      rK|j                         j                         r-|j                  |j                         j                                |j                  |D cg c]&  } t        |j                         d|z   d	              ( c}       d
|j                         fd|j                         ffD ]  \  }}t        |j                               D ]v  }|j                  |      }|st        ||      s#t!        ||      }|s2||d<   |j#                  |      }|dk\  rd|j%                  |      z   nd|d<   | j                  |       x  y c c}w )N*	vtkMapperr   )r      )      r   
vtkTextureGetc                       y )Nr	   r	   r   r   <lambda>z)extract_required_fields.<locals>.<lambda>   s    QUr   	pointDatacellDatalocationsetaddArrayregistration)IsAGetScalarVisibilityGetArrayAccessModeGetArrayName
GetArrayIdGetScalarModeGetPointDataGetArray
GetScalarsrQ   GetCellDataextendgetattrr   GetNumberOfArraysr   rV   IsArrayAnAttributeGetAttributeTypeAsString)extracted_fieldsparentdatasetrR   requested_fieldsarrays_to_export
export_allmapperscalar_visibilityarray_access_modecolor_array_namescalar_modearray_to_exportrequested_fieldre   
field_dataarray_indexr
   
array_meta	attributes                       r   extract_required_fieldsr   l   s    ((Jfjj-F & : : < & 9 9 ;):a)?##%VEVEVEX  !..0K [F%:")"6"6"8"A"ABR"S"*&-&:&:&<&G&G&IO ''8 [F%:")"5"5"7"@"@AQ"R"*&-&9&9&;&F&F&HO ''8 [A%5")"6"6"8"C"C"E"*&-&9&9&;&F&F&HO ''8fjj.73G3G3I3T3T3V##G$8$8$:$E$E$GH (8'7O W,,.0GVX'7	
 
g**,-	W((*+!* !!=!=!?@K''4E[0@A25'B
-5Jz* * = =k JI %> 
 C CI NN' ~.
 %++J7 A	!s   %+K)r   r   rM   utilsr   r   r   r   r   r'   r.   r2   r6   r?   rV   r   r	   r   r   <module>r      sK    	   X X(3
  &> CLYAW<8r   