
    pjG                        d dl Z d dlZ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 ddZd Zdd	Zdd
Zd Zddddddddddd
Zd ZddZy)    NVTK_MODULE_NAME
vtkmodules
vtk_module)vtk_to_numpy)vtkDataSetSurfaceFilterc                    | yd}| j                  d      r| }n;t               }|j                  |        |j                          |j	                         }|j                         ydi i}t        |j                               }|r||d   d<   t        |j                               }|r||d   d<   t        |j                               }	|	r|	|d   d<   t        |j                               }
|
r|
|d   d<   t        |j                               }|r||d   d<   |ud}|j                         j                  |      }|j                         j                  |      }|rt        |d	|
      }|rt        |d|
      }|r|j                  d|i       |r9t!        |j                         |d      }t#        |      r|j                  d|i       |r9t!        |j                         |d	      }t#        |      r|j                  d|i       |S )zNExpect any dataset and extract its surface into a dash_vtk.Mesh state propertyNvtkPolyDatameshpointsvertslinespolysstripsCellData)locationname	PointDatafieldpointArrays
cellArrays)IsAr   SetInputDataUpdate	GetOutput	GetPoints
mesh_arrayGetVertsGetLinesGetPolys	GetStripsGetPointDataGetArrayGetCellData
data_arrayupdate
field_datalen)datasetfield_to_keeppoint_arrayscell_arrayspolydataextract_skin_filterstater   r   r   r   r   r   p_arrayc_array
point_data	cell_datas                    S/DATA/.local/lib/python3.12/site-packages/trame_vtk/modules/vtk/serializers/mesh.pyr
   r
      s    H{{=!57((1""$&002# RLE**,-F"(fhx((*+E!&fgx((*+E!&fgx((*+E!&fg**,-F"(fh  '')22=A&&(11-@w-PEw=QELL'5)*  5 5 7{S
z?LL-45 x335{JO	y>LL,	23L    c                 L    | r"t        t        | j                                     S y N)b64_encode_numpyr   GetData)arrays    r3   r   r   V   s     U]]_ =>> r4   c                     | rl| j                  d      }| j                         }t        |       }t        t	        |j
                           }|r|n| j                         t        |      ||||dS y )N)r   valuesnumberOfComponentstyper   	dataRange)GetRangeGetNumberOfComponentsr   
to_js_typestrdtypeGetNamer7   )r$   r   r   
data_rangenb_compr<   js_typess          r3   r$   r$   [   ss    ((,
224j)c&,,/0 Dj&8&8&:&v.") #
 	
 r4   c                 |    g }|D ]4  }| j                  |      }t        |||      }|s$|j                  |       6 |S r6   )r"   r$   append)r&   namesr   fieldsr   r9   js_arrays          r3   r&   r&   k   sE    F##D)eXt4MM(#	  Mr4   c                    | | j                  d      syd| j                         | j                         | j                         di}t	        | d      r[| j                         }g }t        d      D ]3  }t        d      D ]#  }|j                  |j                  ||             % 5 ||d   d<   | j                         j                         }t        |d	      }|r||d
<   |S )zKExpect a vtkImageData and extract its setting for the dash_vtk.Volume stateNvtkImageDataimage)
dimensionsspacingoriginGetDirectionMatrix   	directionr   )r   r   )r   GetDimensions
GetSpacing	GetOriginhasattrrT   rangerJ   
GetElementr!   
GetScalarsr$   )r(   r.   matrixjs_matjiscalarsr   s           r3   volumerc   v   s    gkk.9 	!//1))+'')
E w,-++-qA1Xf//156   '-g{#""$//1Gw5EgLr4   	Int8Array
Uint8Array
Int16ArrayUint16Array
Int32ArrayUint32ArrayFloat32ArrayFloat64Array)
int8uint8int16uint16int32uint32int64uint64float32float64c                    t        |       dk(  r| j                         S | j                  }|j                  dk(  rt	        |       S |j                  dk(  rt	        | t
        j                        S |j                  dv r t        j                  |       }t        j                  |       }|dk  }t        ||       }|r|t        j                  t
        j                        k  rt	        | t
        j                        S |t        j                  t
        j                        j                  k  rt	        | t
        j                        S |t        j                  t
        j                        j                  k  rt	        | t
        j                        S | j                         S |t        j                  t
        j                        j                  k  rt	        | t
        j                        S |t        j                  t
        j                        j                  k  rt	        | t
        j                        S |t        j                  t
        j                        j                  k  rt	        | t
        j                        S | j                         S )Nr   fb)ura   )r'   tolistrD   kind	np_encodenprm   amaxaminmaxiinforl   rn   rp   ro   rq   )objrD   	max_value	min_valuesigned
test_values         r3   r7   r7      s    3x1}zz|IIEzzS~	s	bhh''	z	!GGCL	GGCL	QYJ/
BHHRWW-- bgg..BHHRXX.222 bhh//BHHRXX.222 bhh// ::< BHHRXX.222 bhh//BHHRYY/333 bii00BHHRYY/333 bii00 ::<r4   c                    |rx| j                  |      j                  d      }t        j                  t	        |            j                  d      t        |j                        t        | j                        dS t        j                  t	        | j                  d                  j                  d      t        | j                        t        | j                        dS )NC)orderzutf-8)bvalsrD   shape)
astyperavelbase64	b64encode
memoryviewdecoderC   rD   listr   )r9   np_typen_arrays      r3   r|   r|      s    ,,w'--C-8%%j&9:AA'J'%++&
 	
 !!*U[[s[-C"DELLWUU[[!ekk" r4   )NNN)r   N)r   r6   )r   numpyr}   os	importlibsysenvirongetvtk_module_nameimport_modulemodulesvtk_module.util.numpy_supportr   vtk_module.vtkFiltersGeometryr   r
   r   r$   r&   rc   rB   r7   r|    r4   r3   <module>r      s      	  
**..!2LA3I33ODL  6 ADN?

 B 
!Hr4   