Ë
    
Þ~f+  ã                   óœ   — 	 d dl Zd dlZd dlmZ d dlmZ ddddd	d
d	d
dddœ
Zd„ Z	dd„Z
d„ Zdd„Zdd„Zdd„Zd„ Zy# e$ r	  ed«      ‚w xY w)é    NzWThis module depends on the numpy module. Please makesure that it is installed properly.)Úvtk_to_numpy)ÚvtkDataSetSurfaceFilterÚ	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)ÚuÚi)ÚlenÚtolistÚdtypeÚkindÚ	np_encodeÚnpr   ÚamaxÚaminÚmaxÚiinfor   r   r   r   r   )Úobjr   Ú	max_valueÚ	min_valueÚsignedÚ
test_values         ú4lib/python3.12/site-packages/vtkmodules/web/utils.pyÚb64_encode_numpyr,      s·  € ô ˆ3ƒx�1‚}Ø�z‰z‹|Ðà�I‰I€EØ‡z�z�SÒÜ˜‹~ÐØ	�‰�sÒ	Ü˜œbŸh™hÓ'Ð'Ø	�‰�zÒ	!ä—G‘G˜C“Lˆ	Ü—G‘G˜C“Lˆ	Ø˜Q‘ˆÜ˜ Y JÓ/ˆ
ÙØœBŸH™H¤R§W¡WÓ-Ò-Ü  ¤b§g¡gÓ.Ð.ØœBŸH™H¤R§X¡XÓ.×2Ñ2Ò2Ü  ¤b§h¡hÓ/Ð/ØœBŸH™H¤R§X¡XÓ.×2Ñ2Ò2Ü  ¤b§h¡hÓ/Ð/ð �:‰:‹<Ðð œBŸH™H¤R§X¡XÓ.×2Ñ2Ò2Ü  ¤b§h¡hÓ/Ð/ØœBŸH™H¤R§Y¡YÓ/×3Ñ3Ò3Ü  ¤b§i¡iÓ0Ð0ØœBŸH™H¤R§Y¡YÓ/×3Ñ3Ò3Ü  ¤b§i¡iÓ0Ð0ð �:‰:‹<Ðó    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)Úbvalsr   Úshape)
ÚastypeÚravelÚbase64Ú	b64encodeÚ
memoryviewÚdecodeÚstrr   Úlistr2   )ÚarrayÚnp_typeÚn_arrays      r+   r    r    A   s®   € ÙØ—,‘,˜wÓ'×-Ñ-°CÐ-Ó8ˆä×%Ñ%¤j°Ó&9Ó:×AÑAÀ'ÓJÜ˜Ÿ™Ó'Ü˜%Ÿ+™+Ó&ñ
ð 	
ô ×!Ñ!¤*¨U¯[©[¸s¨[Ó-CÓ"DÓE×LÑLÈWÓUÜ�U—[‘[Ó!Ü�e—k‘kÓ"ñð r-   c                 óL   — | r"t        t        | j                  «       «      «      S y ©N)r,   r   ÚGetData)r;   s    r+   Ú
mesh_arrayrA   P   s    € ÙÜ¤¨U¯]©]«_Ó =Ó>Ð>ð r-   c                 óà   — | rl| j                  d«      }| j                  «       }t        | «      }t        t	        |j
                  «         }|r|n| j                  «       t        |«      ||||dœS y )Néÿÿÿÿ)ÚnameÚvaluesÚnumberOfComponentsÚtypeÚlocationÚ	dataRange)ÚGetRangeÚGetNumberOfComponentsr   Ú
to_js_typer9   r   ÚGetNamer,   )Ú
data_arrayrH   rD   rI   Únb_comprE   Újs_typess          r+   rN   rN   U   ss   € ÙØ×'Ñ'¨Ó+ˆ	Ø×2Ñ2Ó4ˆÜ˜jÓ)ˆÜœc &§,¡,Ó/Ñ0ˆá ‘D j×&8Ñ&8Ó&:Ü& vÓ.Ø")ØØ Ø"ñ
ð 	
ð r-   c                 ó|   — g }|D ]4  }| j                  |«      }t        |||«      }|sŒ$|j                  |«       Œ6 |S r?   )ÚGetArrayrN   Úappend)Ú
field_dataÚnamesrH   ÚfieldsrD   r;   Újs_arrays          r+   rT   rT   e   sE   € Ø€FÛˆØ×#Ñ# DÓ)ˆÜ˜e X¨tÓ4ˆÚØ�M‰M˜(Õ#ð	 ð €Mr-   c                 ó  — | €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)rH   rD   Ú	PointDataÚfieldÚpointArraysÚ
cellArrays)ÚIsAr   ÚSetInputDataÚUpdateÚ	GetOutputÚ	GetPointsrA   ÚGetVertsÚGetLinesÚGetPolysÚ	GetStripsÚGetPointDatarR   ÚGetCellDatarN   ÚupdaterT   r   )ÚdatasetÚfield_to_keepÚpoint_arraysÚcell_arraysÚpolydataÚextractSkinFilterÚstater[   r\   r]   r^   r_   rb   Úp_arrayÚc_arrayÚ
point_dataÚ	cell_datas                    r+   rZ   rZ   p   s  € à€Øð €HØ‡{�{�=Ô!Ø‰ä3Ó5ÐØ×&Ñ& wÔ/Ø× Ñ Ô"Ø$×.Ñ.Ó0ˆà×ÑÓÐ#Øð �RˆL€Eä˜×*Ñ*Ó,Ó-€FÙØ"(ˆˆf‰�hÑä�x×(Ñ(Ó*Ó+€EÙØ!&ˆˆf‰�gÑä�x×(Ñ(Ó*Ó+€EÙØ!&ˆˆf‰�gÑä�x×(Ñ(Ó*Ó+€EÙØ!&ˆˆf‰�gÑä˜×*Ñ*Ó,Ó-€FÙØ"(ˆˆf‰�hÑð Ð ØˆØ×'Ñ'Ó)×2Ñ2°=ÓAˆØ×&Ñ&Ó(×1Ñ1°-Ó@ˆáÜ˜w°À-ÔPˆEáÜ˜w°À=ÔQˆEáØ�L‰L˜' 5Ð)Ô*ñ Ü × 5Ñ 5Ó 7¸À{ÓSˆ
ÜˆzŒ?Ø�L‰L˜-¨Ð4Ô5ñ Ü˜x×3Ñ3Ó5°{ÀJÓOˆ	ÜˆyŒ>Ø�L‰L˜,¨	Ð2Ô3à€Lr-   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é   Ú	directionra   )rH   rb   )re   ÚGetDimensionsÚ
GetSpacingÚ	GetOriginÚhasattrr‚   ÚrangerS   Ú
GetElementrn   Ú
GetScalarsrN   )rq   rw   ÚmatrixÚjs_matÚjr   Úscalarsrb   s           r+   Úvolumer�   ·   sã   € à€˜gŸk™k¨.Ô9Øð 	Ø!×/Ñ/Ó1Ø×)Ñ)Ó+Ø×'Ñ'Ó)ñ
ð€Eô ˆwÐ,Ô-Ø×+Ñ+Ó-ˆØˆÜ�q–ˆAÜ˜1–X�Ø—‘˜f×/Ñ/°°1Ó5Õ6ñ ð ð '-ˆˆg‰�{Ñ#à×"Ñ"Ó$×/Ñ/Ó1€GÜ�w¨Ô5€EÙØˆˆg‰à€Lr-   r?   )ra   N)ra   )NNN)Únumpyr!   ÚImportErrorr5   Úvtkmodules.util.numpy_supportr   Úvtkmodules.vtkFiltersGeometryr   rL   r,   r    rA   rN   rT   rZ   r�   © r-   r+   Ú<module>r–      s‰   ððÛó å 6Ý Að ØØØØØØØØØñ€
ò!óHò?ó

ó óDóNøði ò Ù
ð	%óð ðús	   ‚= ½A