
    el              	          d dl Z d dlZd dlZd dlZd dlZddlmZ ddddZ ej        d          Z	ej
        ej        ej        ej        ej        ej        ej        ej        dZd	 Zd
 Zd Zd Zd Zd ZddZd Zd Zd Z e            ZdS )    N   )arrayTypesMapping
SetTextureSetColor)
AddTextureSetUseGradientOpacitySetRGBTransferFunctionzinstance:\${([^}]+)})	Int8Array
Uint8Array
Int16ArrayUInt16Array
Int32ArrayUint32ArrayFloat32ArrayFloat64Arrayc                 L    | d                                          | dd         z   S )z0Upper the first letter letting the rest unchanger   r   N)upper)names    Jlib/python3.11/site-packages/panel/pane/vtk/synchronizable_deserializer.py
capitalizer      s!    7==??T!""X%%    c                 J   |                      |d                    |                     |d         |d         z             |                    d|d         z            }t          |                                          }t          j        |          }|                                 dk    rLdd l}|                    ||j	                  
                    |j                                                  }d}|                     |t          |          |z  d	           || _        d S )
NnumberOfComponentssizezdata/%shash   r   )dtype   r   )SetNumberOfComponentsSetNumberOfTuplesreadr   GetDataTypestructcalcsizenumpy
frombufferuint32astypeuint64tobytesSetVoidArraylen
_reference)vtk_arrstatezfdatadataTypeelementSizenps          r   
fill_arrayr5      s
   !!%(<"=>>>eFmU3G-HHIII779uV},--D !4!4!6!67H/(++K""}}T}33::29EEMMOOs4yy+5q999Gr   c                     t          t          | d                               }|                    | d         |i           | d                             d          }t	          || d                    |D ]} |j        |  d S Ntypeid
propertiesnodes)getattrvtkupdatepopset_propertiesAddRGBPointr/   r0   registerinstancer;   nodes         r   color_fun_builderrF   -   s    *wsE&M**,,HOOU4[(+,,,,##G,,E8U<0111 $ $d###$ $r   c                     t          t          | d                               }|                    | d         |i           | d                             d          }t	          || d                    |D ]} |j        |  d S r7   )r<   r=   r>   r?   r@   AddPointrB   s         r   piecewise_fun_builderrI   5   s    *wsE&M**,,HOOU4[(+,,,,##G,,E8U<0111 ! !4   ! !r   c                    t          j                    }|                    | d         |i           d| d         v rv| d         d         }t          j                    }t	          |d                              }t          |||           |                    |           |                    |           dD ]}|| d         v rt          j                    }t          j	                    }	t          |	| d         |         |           |
                    |	            t          |dt          |          z             |           | d         d         }
|
D ]}t	          |d                              }t          |||            t          |dt          |d	                   z                         } t          |t          |                    d
d                              |           d S )Nr9   pointsr:   r2   )vertslinespolysstripsSetfieldsGetlocationregistrationaddArray)r=   vtkPolyDatar>   	vtkPointsARRAY_TYPESr5   SetData	SetPointsvtkCellArrayvtkIdTypeArrayImportLegacyFormatr<   r   get)r/   r0   rC   rD   rK   	vtkpointspoints_data_arr	cell_typecell_arrcell_data_arrrQ   datasetdata_arrrS   s                 r   poly_data_builderrf   =   s     HOOU4[(+,,,5&&&|$X.MOO	%fZ&89;;?FB////***9%%%: G G	l+++'))H.00M}eL&9)&DbIII''666<GHej&;&;;<<XFFF < *F Y Ywz23558Wb)))M78UZ
8K-L-L%LMMOON*W[[%L%LMMNNxXXXX	Y Yr   c                 R    t          | ||          }|                    d           d S )Nr   )generic_builderSetScalarMode)r/   r0   rC   rD   s       r   volume_mapper_builderrj   X   s-    ub(33H1r   c           
      L   |i } t          t          | d                               }|                    | d         |i           t          || d                    |                     dd           }|r@|D ]=}t
          |d                  }|r ||||           %t          d|d                     >|                     dd           }|r0|D ],}g }	d}
|d         D ]w}	 t                              |          d	         }|		                    ||                    ?# t          t          f$ r |		                    |           Y gt          $ r d
}
Y tw xY w|
rt          |d	                   t          vrt          |d	                   }n t          t          |d	                            }||dk    r4t          |	          dk    r! t          ||dz             |	d d d            t          ||          |	  .|                     dd           }|r|D ]}t!          |d                              }t#          |||           d|vr|n- t          |dt          |d                   z                         } t          |t          |d                             |           |S )Nr8   r9   r:   dependencieszNo builder for callsFr   r   TSetInputData   Objectarraysr2   rS   rR   rT   )r<   r=   r>   r@   r^   TYPE_HANDLERSprint
WRAP_ID_REfindallappend
IndexError	TypeErrorKeyErrorr   METHODS_RENAMEr,   rX   r5   )r/   r0   rC   rD   rl   depbuilderrm   callargsskipargextract_instancemethodrr   
array_meta	vtk_arrayrS   s                     r   rh   rh   \   s   *wsE&M**,,HOOU4[(+,,,8U<011199^T22L 7 	7 	7C#CK0G 7R****5F556666IIgt$$E 1 	1 	1DDDAw     '1'9'9#'>'>q'A$KK)9 :;;;;"I. % % %KK$$$$$      DDD X$q'"".88#DG,,'
47(;(;<~x''CIIqLL4&8"344d44R4jAAA)&))4000YYx&&F Q  	Q 	QJ#Jz$:;==Iy*b111Z// !PWXuZ
:8N-O-O'OPPRR  FGHjN)CDDEEiPPPPOs    ;D&EEEc                     |                                 D ]3\  }}t          | dt          |          z   d           }|r ||           4d S )NrP   )itemsr<   r   )rD   r:   kvfns        r   r@   r@      s]      ""  1XuZ]]2D99 	BqEEE r   c                    t          j        | d          5 }t          j        |                    d                                                    }d|d         d<   t          ||          }d d d            n# 1 swxY w Y   |S )Nrz
index.jsonr   r:   numberOfLayers)zipfileZipFilejsonloadsr!   decoderh   )filenamer0   scenerenwins       r   import_synch_filer      s    	3	'	' ,2
277<007799::01l,- ++, , , , , , , , , , , , , , , Ms   AA77A;>A;c                     g ddgdgdgdgddgdd	gd
gddgdgd
} i dt           dt           dd dt           dt          dt           dt           dt           dt           dt           dt           dt          dt          dt           dt          dt           dt           }|                                 D ]'\  }}|D ]}|                    |||         i            (|S ) N)vtkOpenGLPolyDataMappervtkCompositePolyDataMapper2vtkDataSetMappervtkOpenGLPropertyvtkOpenGLRenderervtkOpenGLCamera'vtkPVDiscretizableColorTransferFunctionvtkOpenGLActorvtkPVLODActorvtkOpenGLLight
vtkPVLightvtkOpenGLTexture vtkFixedPointVolumeRayCastMappervtkSmartVolumeMappervtkOpenGLGlyph3DMapper)
	vtkMappervtkPropertyvtkRenderer	vtkCameravtkColorTransferFunctionvtkActorvtkLight
vtkTexturevtkVolumeMappervtkGlyph3DMapperr   vtkLookupTabler   r   rV   vtkImageDatar   r   r   r   vtkFollowerr   vtkPiecewiseFunctionr   r   	vtkVolumevtkVolumeProperty)rh   rf   rF   rI   rj   r   r>   )aliasestype_handlersr   
alias_listaliass        r   make_type_handlersr      s   ccc+,+,'(%N$O%7%|4)*>@VW56 G/ 	D 	_	
 	( 	 	_ 	O 	 	O 	 	#$5 	 5 	o 	0  	_!" 	_#M( !  : 	 	E  }Q'"    	
 r   )N)r   rer#   r   r=   synchronizable_serializerr   r{   compileru   vtkCharArrayvtkUnsignedCharArrayvtkShortArrayvtkUnsignedShortArrayvtkIntArrayvtkUnsignedIntArrayvtkFloatArrayvtkDoubleArrayrX   r   r5   rF   rI   rf   rj   rh   r@   r   r   rs    r   r   <module>r      s^    				   



 8 8 8 8 8 8 !( 
 RZ/00
!*#,/*%&	 	& & &  $ $ $! ! !Y Y Y6  . . . .`    ( ( (T #"$$r   