
    eO                        d dl Z 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mZ d dl	m
Z
 d dlmZmZ d dlmZ ddlmZ d ZeZd	 Zg d
Zddddddddddd
Zd Zd Zd Zd Zd Zd Zd Z G d d          Zi a dZ!d Z"d Z#d Z$d  Z%d! Z&d" Z'i Z(d# Z)d$ Z*d% Z+d& Z,d'd(gfd)Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdS )B    N)vtkTypeInt32ArrayvtkTypeUInt32Array)vtkDataObject)vtkCompositeDataGeometryFiltervtkGeometryFilter)vtkColorTransferFunction   )TextPositionc                 6    t           | j        di |          S )N )iteritems)dkwargss     Hlib/python3.11/site-packages/panel/pane/vtk/synchronizable_serializer.py	iteritemsr      s"    !!&!!"""    c                 P    t          j        |                               d          S )Nzutf-8)base64	b64encodedecode)xs    r   <lambda>r      s    )!,,33G<< r   ) r   bBhHiIlLfr   r"   r   r   r   r!   r"   	Int8Array
Uint8Array
Int16ArrayUInt16Array
Int32ArrayUint32ArrayFloat32ArrayFloat64Array)
r   r   r   r   r   r    r!   r"   r#   r   c                 h    t          j        t          |                                                     S N)hashlibmd5buffer	hexdigest	dataArrays    r   hashDataArrayr4   ?   s&    ;vi(())33555r   c                 V    t           t          |                                                   S r-   )javascriptMappingarrayTypesMappingGetDataTyper2   s    r   getJSArrayTyper9   C   s    .y/D/D/F/FGHHr   c                 R   t          j                    5 }t          j        |d          5 }|                    d| z  |t          j                   d d d            n# 1 swxY w Y   |                    d           |                                cd d d            S # 1 swxY w Y   d S )Nw)modezdata/%sr   )ioBytesIOzipfileZipFilewritestrZIP_DEFLATEDseekread)namedata	in_memoryzfs       r   zipCompressionrI   G   s   	  _YS111 	4RKK	D(g24 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	q~~                                   s4   B%ABA 	 B#A 	$+BB #B c           	         t           |                                          }t          j        |          }|                                 }|                                 ||z  }|dk    rt          j        t          |                     5 }t          t          j
        ||z  |                    |                              d d d            n# 1 swxY w Y   fdt          |z            D             S d S )Nr   c                 6    g | ]}|z  |d z   z           S )r	   r   ).0idxrF   nbComponentss     r   
<listcomp>z#dataTableToList.<locals>.<listcomp>Y   sA     > > > S%s1ul&::; > > >r   )r7   r8   structcalcsizeGetNumberOfValuesGetNumberOfComponentsr=   r>   r0   listunpackrD   range)	dataTabledataTypeelementSizenbValuesnbytesstreamrF   rN   s         @@r   dataTableToListr]   P   sF    !6!6!8!89H/(++K**,,H2244L8#F3Zy))** 	Ofhx&7V9L9LMMNND	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O> > > > >$X|%;<<> > > 	> s   
9CCCc                 V   d }d}|                                  }|                                 }|                                 }|                                 }|                                }|                                }	|                                }
|dk    r/|                                }d}||	                                }d}n|dk    r|                                }d}n|dk    r|	                                }d}n|dk    r4|dk    r|                    |          }n|                    |          }d}nm|dk    r4|dk    r|	                    |          }n|	                    |          }d}n3|dk    r|
                    |          }n|
                    |          }d}||fS )Nr   r	            )	GetScalarModeGetArrayAccessMode
GetArrayIdGetArrayNameGetPointDataGetCellDataGetFieldData
GetScalarsGetAbstractArray)mapperdatasetscalars	cell_flagscalar_modearray_access_modearray_id
array_namepdcdfds              r   
getScalarsrv   ]   s   GI&&((K1133  ""H$$&&J					B					B					Ba--//	?mmooGI			--//					--//					!!))(33GG))*55G					!!))(33GG))*55G		!!))(33GG))*55G	Ir   c                     d }	 d | d         D             d         }|dv rdnd}|d         d         D ]0}|d	         |k    r"|                     d
d           dk    r|d         }1n# t          $ r Y nw xY w|S )Nc                 H    g | ]}|d                               d          | S )idrl   )endswith)rL   depss     r   rO   z%retrieveArrayName.<locals>.<listcomp>   s0    aaat$t*BUBUV_B`B`adaaar   dependenciesr   )r	   r`   	pointDatacellData
propertiesfieldslocationregistration
setScalarsrE   )get	Exception)mapper_instancero   colorArrayNamedsr   	arrayMetas         r   retrieveArrayNamer      s    Naa~>aaabcd"-"7"7;;ZL)(3 	3 	3I$00Y]]>SW5X5X\h5h5h!*6!2	3    s   AA$ $
A10A1c                 T     | z
  |dz
  z   fdt          |          D             S )Nr	   c                      g | ]
}|z  z   S r   r   )rL   r   deltastarts     r   rO   zlinspace.<locals>.<listcomp>   s!    000EAeGO000r   rV   )r   stopnumr   s   `  @r   linspacer      s9    E\CE"E00000U3ZZ0000r   c                   V    e Zd ZddZd Zd Zd Zd Zd Zdd	Z	ddZ
d Zd Zd ZdS )SynchronizationContextNFc                 v    || _         i | _        i | _        d| _        || _        || _        || _        i | _        d S )NF)serializeAllDataArraysdataArrayCachelastDependenciesMappingingoreLastDependenciesidRootdebugSerializersdebugAllannotations)selfid_rootserialize_all_data_arraysdebugs       r   __init__zSynchronizationContext.__init__   sF    &?# ')$&+# %r   c                     | j         r%t          |d          r$|                    d          rt          |          S | j         t          |          z   S )NIsA	vtkCamera)r   hasattrr   getReferenceId)r   instances     r   r   z%SynchronizationContext.getReferenceId   sS    { 	:wx77 	:HLL<U<U 	:!(+++;!9!999r   c                                                     dk    r||                                                                dz                                                                                                                                  dfdt          D             }| j        ||i| _        d S | j                            ||i           d S d S )NvtkCornerAnnotationr_   )ry   viewportfontSize
fontFamilycolorc                 P    i | ]"}|j                             |j                  #S r   )rE   GetTextvalue)rL   posprops     r   
<dictcomp>z8SynchronizationContext.addAnnotation.<locals>.<dictcomp>   s+    MMM38T\\#)44MMMr   )	GetClassNameGetViewportGetLinearFontScaleFactorGetTextPropertyGetFontFamilyAsStringGetColorr
   r   update)r   parentr   propId
annotations     `  r   addAnnotationz$SynchronizationContext.addAnnotation   s    "777"..00 99;;a?"2244JJLL--//88::  NMMMMMMJ '$*J#7    ''(<===== 87r   c                 N    t          | j                                                  S r-   )rT   r   values)r   s    r   getAnnotationsz%SynchronizationContext.getAnnotations   s    D$++--...r   c                     || _         d S r-   )r   )r   forces     r   setIgnoreLastDependenciesz0SynchronizationContext.setIgnoreLastDependencies   s    &+###r   c                     || j         |<   d S r-   )r   )r   pMd5rF   s      r   cacheDataArrayz%SynchronizationContext.cacheDataArray   s    $(D!!!r   c                 t   | j         |         }|d         }|d         }||                                k    rt          j        rt	          d           |                                dv r|                                |                                z  }|                                dv rt                      }nt                      }|
                    |           t          |          D ]F}	|                    |	|                    |	          dk     rdn|                    |	                     Gt          |          }
nt          |          }
|r8|s|
                                n!t!          ||
                                          S t#          |s|
n!t!          ||
                                                    S )NarraymTimez4 ***** ERROR: you asked for an old cache key! ***** )         )r   r   r   )r   GetMTimecontextr   printr8   GetNumberOfTuplesrS   r   r   SetNumberOfTuplesrV   SetValueGetValuer0   tobytesrI   base64Encode)r   r   binarycompressioncacheObjr   	cacheTime	arraySizenewArrayr   pBuffers              r   getCachedDataArrayz)SynchronizationContext.getCachedDataArray   s   &t,!W%	(((( NLMMM,..//11E4O4O4Q4QQI  ""h..-// -..&&y1119%% > >!!!5>>!+<+<$%,& ,&RR+0>>!+<+<> > > >X&&GGUmmG 	e -8d7??$$$^DRYRaRaRcRc=d=dd;cGGN4QXQ`Q`QbQb<c<cdddr      c                    t          j                     |z
  }g }| j        D ]R}| j        |         }|d         }|                                }|dk    r!|d         |k     r|                    |           S|D ]
}| j        |= d S )Nr   r	   ts)timer   GetReferenceCountappend)r   
timeWindow
cutOffTimeshasToDeletesharecordr   counts           r   checkForArraysToReleasez.SynchronizationContext.checkForArraysToRelease   s    Y[[:-
& 	) 	)C(-F7OE++--EzzfTlZ77##C((( 	) 	)C#C((	) 	)r   c                 D    g }|| j         v r| j        s| j         |         }|S r-   )r   r   )r   idstrlastDepss      r   getLastDependencyListz,SynchronizationContext.getLastDependencyList   s/    D0009T03E:Hr   c                     || j         |<   d S r-   )r   )r   r   depLists      r   setNewDependencyListz+SynchronizationContext.setNewDependencyList   s    .5$U+++r   c                     |                      |          g }|fdD             z  }|fdD             z  }|                     |           |S )Nc                 <    g | ]}|vt          |          ggS r   wrapId)rL   r   	addMethodoldLists     r   rO   zBSynchronizationContext.buildDependencyCallList.<locals>.<listcomp>  s:     8 8 8aw&6&6 vayyk*&6&6&6r   c                 <    g | ]}|vt          |          ggS r   r   )rL   r   newListremoveMethods     r   rO   zBSynchronizationContext.buildDependencyCallList.<locals>.<listcomp>  s:     8 8 8aw&6&6  &))-&6&6&6r   )r   r   )r   r   r   r   r   callsr   s     ``` @r   buildDependencyCallListz.SynchronizationContext.buildDependencyCallList   s    ,,U33 8 8 8 8 8"8 8 8 	8 8 8 8 8 8"8 8 8 	8 	!!%111r   )NFF)FF)r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s           : : :> > >/ / /, , ,) ) )e e e e@) ) ) )  6 6 6
 
 
 
 
r   r   c                     |t           | <   d S r-   )SERIALIZERS)rE   methods     r   registerInstanceSerializerr    s    Kr   c                     |                                 }|t          v rt          |         nd }|r || ||||          S |j        r&t          t	          |          d|d|           d S d S )Nz!!!No serializer for z	 with id )r   r  r   r   pad)r   r   
instanceIdr   depthinstanceType
serializers          r   serializeInstancer    s    ((**L%44  :>   Hz&(JGGG 65zzzz<<<5 	6 	6 	6 	6 	66 6r   c                  B   t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          d	t                     t          d
t
                     t          dt
                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                     t          dt                      t          dt"                     t          dt"                     t          dt"                     t          dt$                     t          dt$                     t          dt$                     t          dt$                     t          dt$                     t          d t$                     t          d!t$                     t          d"t$                     t          d#t$                     t          d$t$                     t          d%t&                     t          d&t(                     d S )'Nr   vtkImageSlice	vtkVolumevtkOpenGLActorvtkFollowervtkPVLODActorvtkOpenGLPolyDataMappervtkCompositePolyDataMapper2vtkDataSetMapper vtkFixedPointVolumeRayCastMappervtkSmartVolumeMappervtkOpenGLImageSliceMappervtkOpenGLGlyph3DMappervtkLookupTable'vtkPVDiscretizableColorTransferFunctionr   vtkPiecewiseFunctionvtkOpenGLTexturevtkOpenGLPropertyvtkVolumePropertyvtkImagePropertyvtkPolyDatavtkImageDatavtkStructuredGridvtkUnstructuredGridvtkMultiBlockDataSetvtkCocoaRenderWindowvtkXOpenGLRenderWindowvtkWin32OpenGLRenderWindowvtkEGLRenderWindowvtkOpenVRRenderWindowvtkGenericOpenGLRenderWindowvtkOSOpenGLRenderWindowvtkOpenGLRenderWindowvtkIOSRenderWindowvtkExternalOpenGLRenderWindowvtkOpenGLRenderervtkOpenGLCamera)r  annotationSerializergenericProp3DSerializergenericActorSerializergenericPolyDataMapperSerializergenericVolumeMapperSerializerimageSliceMapperSerializerglyph3DMapperSerializerlookupTableSerializercolorTransferFunctionSerializerpiecewiseFunctionSerializertextureSerializerpropertySerializervolumePropertySerializerimagePropertySerializerpolydataSerializerimageDataSerializermergeToPolydataSerializerrenderWindowSerializerrendererSerializercameraSerializerr   r   r   initializeSerializersrG  .  s@   46JKKK 0GHHH{,CDDD/1GHHH}.DEEE0FGGG !#BD D D%'FH H H13RSSS*,IK K K =? ? ?#%?A A A "9; ; ; /1FGGG13RT T T"$CE E E  ;= = = 13DEEE 24FGGG24LMMM13JKKK }.@AAA~/BCCC68 8 88: : : 9; ; ; 57MNNN "8: : :$&<> > >35KLLL68NOOO&(>@ @ @!#9; ; ;68NOOO35KLLL')?A A A 24FGGG 02BCCCCCr   c                 8    d}t          |           D ]}|dz  }|S )N z  r   )r
  padding_s      r   r  r    s,    G5\\  4Nr   c                     d| z  S )Nzinstance:${%s}r   )idStrs    r   r   r     s    e##r   c                     | rN	 | j         dd         S # t          $ r1 t          |           dd         }t          d|d|            |cY S w xY wdS )Nr	   r   ir   z====> fallback ID z for 0x0)__this__r   strr   )refrM  s     r   r   r     sz    
 	<"%% 	 	 	HHSV$EE555##>???LLL	 5s    8AAc                    t          |           }d }|t          v rt          |         }|r&|d         |                                 k    r|d         S t          |           |                                 d}|t          |<   |d         S )Nmtimer   )r   rT  )r   dataArrayShaMappingr   r4   )r   objIdr   s      r   digestrW    s    5!!EF###$U+ &/U^^%5%555e} U##!! F
 "(%=r   c                     |                      |          }i }|d         |d<   |d         |d<   |                     |          |d<   |S )Nr   minr	   max	component)GetRangeGetComponentName)r   r[  r	compRanges       r   getRangeInfor`    sR    y!!AItIetIe"33I>>Ikr   c                    | sd S t          |           }|                    || |                                 t          j                    d           i }||d<   d|d<   |                                 |d<   t          |           |d<   |                                 |d<   |                                 |                                 z  |d<   g |d	<   |d         d
k    rkt          |d                   D ]+}|d	         	                    t          | |                     ,|d	         	                    t          | d                     n)|d	         	                    t          | d                     |S )N)r   r   r   hashvtkDataArrayvtkClassrE   rX   numberOfComponentssizerangesr	   r   r   )rW  r   r   r   GetNamer9   rS   r   rV   r   r`  )r   r   r   rootr   s        r   getArrayDescriptionrj    sy    t%==D4!!ikk" "    DDL%D==??DL%e,,D!&!<!<!>!>D	..0053J3J3L3LLDLDN !A%%t0122 	: 	:AN!!,ua"8"89999Xl5"556666Xl5!44555Kr   c                    |                                 }t          |                                          D ]A}t          |                    |          |          }|rd|d<   |                     |           B|                                }t          |                                          D ]A}t          |                    |          |          }|rd|d<   |                     |           B|                                }t          |                                          D ]A}t          |                    |          |          }|rd|d<   |                     |           Bd S )Nr}   r   r~   	fieldData)rf   rV   GetNumberOfArraysrj  GetArrayr   rg   )extractedFieldsrl   r   r}   id_arrr   r~   rl  s           r   extractAllDataArraysrq    st   $$&&I	335566 . .'	(:(:6(B(BGLL	 	.$/Ij!""9---""$$H224455 . .'(9(9&(A(A7KK	 	.$.Ij!""9---##%%I	335566 . .'	(:(:6(B(BGLL	 	.$/Ij!""9---	. .r   NormalsTCoordsc                 Z   t          fddD                       rg                    d          rt          d          sdn                                }t	          |          \  }}|j        r<t          | ||           |r(| D ]%}|d         |                                k    rd|d<   &n|rZ|rX|j        sQt          ||          }|d	k    rd
|d<   n|dk    rd|d<   nt          d          d|d<   | 
                    |           ny|                                                                rSt          |                                                                |          }d
|d<   d|d<   | 
                    |                               d          rP|j        sH                    j                                      t!          j                              }	|	d|	d | D             vrVt          |                                                    |	          |          }|d
|d<   d|d<   | 
                    |                               j                                      t!          j                              }
|
d|
d | D             vrVt          |                                                    |
          |          }|d
|d<   d|d<   | 
                    |           d|v rY|                                                                }|r1t          ||          }|rd
|d<   d|d<   | 
                    |           d|v r[|                                                                }|r5t          ||          }|r%d
|d<   d|d<   | 
                    |           d S d S d S d S )Nc              3   B   K   | ]}                     |          V  d S r-   )r   )rL   clsr   s     r   	<genexpr>z(extractRequiredFields.<locals>.<genexpr>  s-      
l
ls6::c??
l
l
l
l
l
lr   )	vtkMappervtkVolumeMappervtkImageSliceMapper
vtkTexturevtkAbstractMapperGetScalarVisibilityr	   rE   r   r   r   r}   r   r~   z!Scalars on field data not handledvtkGlyph3DMapperc                     g | ]
}|d          S rE   r   rL   fields     r   rO   z)extractRequiredFields.<locals>.<listcomp>  s    @l@l@lSXv@l@l@lr   addArrayc                     g | ]
}|d          S r  r   r  s     r   rO   z)extractRequiredFields.<locals>.<listcomp>  s8      WC  WC  WCinW\]cWd  WC  WC  WCr   rr  
setNormalsrs  
setTCoords)anyr   r   r}  rv   r   rq  rh  rj  NotImplementedErrorr   rf   ri   GetInputArrayInformationSCALEGetr   
FIELD_NAMErj   ORIENTATION
GetNormals
GetTCoords)ro  r   rl   r   requestedFieldsscalarVisibilityrm   rn   r   scaleArrayNamescaleOrientationArrayNamenormalstcoordss    `           r   extractRequiredFieldsr    sX   

l
l
l
l&k
l
l
lll .::)** 	.(/8M(N(NpqqTZTnTnTpTp!+FG!<!<GY- 2$_gwGGG E%4 E E	$V,0A0AAA8DIn5 	2- 	2g6T 	2/AA	>>,7Ij))!^^,6Ij))-.QRRR,8	.)&&y111!!##..00 	.+G,@,@,B,B,M,M,O,OQXYYI$/Ij!(4In%""9---zz$%% 2g.L 288FFJJ=KcKeKeff%.@l@l\k@l@l@l*l*l+G,@,@,B,B,S,STb,c,celmmI$(3	*%,6	.)&&y111$*$C$CFDV$W$W$[$[\i\t\v\v$w$w!$05N  WC  WC  sB  WC  WC  WC  6C  6C+G,@,@,B,B,S,STm,n,npwxxI$(3	*%,6	.)&&y111 O##&&((3355 	2+GW==I 2(3	*%,8	.)&&y111 O##&&((3355 	2+GW==I 2(3	*%,8	.)&&y11111 $#	2 	22 2r   c                     |j         rt          dt          |          z             |                    | ||           d S )NzF%s!!!Annotations are not handled directly by vtk.js but by bokeh model)r   r   r  r   )r   r   r   r   r
  s        r   r3  r3  <  sI     eVY\]bYcYccddd&$///4r   c                    d }d }g }g }d }	t          |d          s|j        rt          d           n|                                }	|	rg|                    |	          }
t          ||	|
||dz             }|r:|                    |           |                    dt          |
          gg           d }t          |d          r|                                }n|j        rt          d           |rg|                    |          }t          |||||dz             }|r:|                    |           |                    dt          |          gg           d }t          |d          r|	                                }|rg|                    |          }t          |||||dz             }|r:|                    |           |                    d	t          |          gg           |                    |           ||
                                |                                |                                |                                |                                d
||dS )N	GetMapperz,This volume does not have a GetMapper methodr	   	setMapperGetPropertyz-This image does not have a GetProperty methodsetProperty
GetTexture
addTexture)
visibilitypickabledragable	useBounds)r   ry   typer   r   r|   )r   r   r   r  r   r  r   r   r  r  r   GetVisibilityGetPickableGetDragableGetUseBounds)r   r   popIdr   r
  mapperInstancepropertyInstancer   r|   rk   mapperIdr   r   texture	textureIdtextureInstances                   r   genericPropSerializerr  D  s    NELF4%% " 	B@AAA!! <))&11*&(GUQY8 8 	<///LL+x(8(8'9:;;;Jt]## C%%''

 	CABBB <''
33,*fguqy: : 	< 0111LL-&..)9:;;; Gt\"" $//## >**733	+'9guqy: : 	>000LL,	):):(;<=== ((00!!## ,,..((**((****,,
 
 $  r   c                    t          | |||          }|sd S |d                                                                                                                                                             d                                           r6|d                             dfdt          d          D             i           |S )Nr   )originpositionscaleorientation
userMatrixc                 l    g | ]0}                                                     |d z  |d z            1S )ra   )GetUserMatrix
GetElement)rL   r   prop3Ds     r   rO   z+genericProp3DSerializer.<locals>.<listcomp>  s=    ZZZ16//11<<QqSAFFZZZr   r   )r  r   	GetOriginGetPositionGetScaleGetOrientationr  rV   )r   r  prop3DIdr   r
  r   s    `    r   r4  r4    s    $VVXwNNHVV\!!""$$&&(("",,..# #     %%ZZZZPUVXPYPYZZZ'
 	 	 	 Or   c                    t          | ||||          }|sd S |d                             |                                |                                d           |                    d          r|                                }|                    |          }t          |||||dz             }|rF|d                             |           |d                             dt          |          gg           |S )Nr   )forceOpaqueforceTranslucentr  r	   r|   r   	setCamera)
r4  r   GetForceOpaqueGetForceTranslucentr   	GetCamerar   r  r   r   )	r   actoractorIdr   r
  r   cameracameraIdcameraInstances	            r   r5  r5    s   &vugwNNHVV \!!++--!5577# #    yy H""))&11*68Weai9 9 	H^$++N;;;W$$kF84D4D3E%FGGGOr   c           	         d }d }d }g }g }	t          |d          s|j        rt          d           nt          |                                          D ]}
|                    |
d          }|rd||
fz  }|                     d          r,|                    d          st          |||||dz             }nt          |||||dz             }|r;|		                    |           |	                    dt          |          |
gg           d }t          |d	          r|                                }n+|                     d          r|j        rt          d
           |rg|                    |          }t          |||||dz             }|r:|		                    |           |	                    dt          |          gg           |r|                    |           |i ||	dS d S )NGetInputDataObjectz3This mapper does not have GetInputDataObject methodr   z%s-dataset-%dvtkActorr{  r	   setInputDataGetLookupTablez0This mapper actor not have GetLookupTable methodsetLookupTable)r   ry   r   r   r|   )r   r   r   rV   GetNumberOfInputPortsr  r   rC  r  r   r   r  r   )r   rk   r  r   r
  
dataObjectdataObjectInstancelookupTableInstancer   r|   portdataObjectIdlookupTablelookupTableIds                 r   genericMapperSerializerr    so    JEL6/00 Q 	MKLLL&668899 	Q 	QD224;;J Q.(D1AA::j)) N&**\2J2J N *C
L'519*N *N&& *;
L'519*N *N&% Q ''(:;;;LL.6,3G3G2N!OPPPKv'(( F++--	J		 F 	FDEEE F..{;;/KD D 	F 3444LL*VM-B-B,CDEEE 
,,V44(
 
 	

 
r   c                    t          | ||||          }|sd S |                                |d<   |d                             |                                |                                d|                                |                                rdnd|                                t          ||	                                          |
                                |	                                |                                rdndd
           |S )Nr  r   r	   r   )
resolveCoincidentTopology
renderTimearrayAccessModescalarRangeuseLookupTableScalarRanger  colorByArrayName	colorMode
scalarModeinterpolateScalarsBeforeMapping)r  r   r   GetResolveCoincidentTopologyGetRenderTimeGetScalarRangeGetUseLookupTableScalarRanger}  r   rb   GetColorMode"GetInterpolateScalarsBeforeMappingr   rk   r  r   r
  r   s         r   r6  r6     s   &vvx%PPHVV**,,HV\!!%+%H%H%J%J**,,,,..*0*M*M*O*O%VQQUV"6688-h8L8L8N8NOO((****,,060Y0Y0[0[+b11ab# #    Or   c                 Z   t          | ||||          }|sd S t          |d          r|                                nd}|                                |d<   |d                             |                                ||                                |                                d           |S )NGetImageSampleDistancer	   r  r   )sampleDistanceimageSampleDistanceautoAdjustSampleDistances	blendMode)r  r   r  r   r   GetSampleDistanceGetAutoAdjustSampleDistancesGetBlendMode)r   rk   r  r   r
  r   r  s          r   r7  r7    s    &vvx%PPHVV 6344	%%''' 
 **,,HV\!! 22442%+%H%H%J%J((**# #    Or   c                 L   t          | ||||          }|sd S |                                |d<   |d                             |                                |                                |                                |                                |                                |                    |j	                  
                    t          j                              |                    |j                  
                    t          j                              d           |S )Nr  r   )orientorientationModescalingscaleFactor	scaleMode
scaleArrayorientationArray)r6  r   r   	GetOrientGetOrientationMode
GetScalingGetScaleFactorGetScaleModer  r  r  r   r  r  r  s         r   r9  r9  .  s   .vvxRWXXHVV**,,HV\!!""$$!4466$$&&,,..((**55flCCGGH`HbHbcc";;F<NOOSSTaTlTnTnoo# #    Or   c                    t          | ||||          }|sd S |                                |d<   |d                             |                                |                                |                                d           |S )Nr  r   )interpolaterepeat	edgeClamp)r  r   r   GetInterpolate	GetRepeatGetEdgeClamp)r   r  r  r   r
  r   s         r   r=  r=  A  s    &vw	7ERRHVV++--HV\!!--//##%%))++# #   
 Or   c                 b    t          | ||||          }|sd S |                                |d<   |S )Nr  )r  r   r  s         r   r8  r8  Q  s>     'vvx%PPHVV**,,HVOr   c                    g }|                                 }ddg}t          |d          r'	 |                    |           n# t          $ r Y nw xY w|                                }|                                r>t          |                                |          }	|	rd|	d<   |                    |	           |                    |           ||	                                |
                                |||||                                |                                |                                |                                rdnd|                                rdnd|                                |                                |                                |                                |                                d|d	S )
Ng      ?r   GetHueRangesetTabler   TF)numberOfColors
valueRangerV   hueRangesaturationRangenanColorbelowRangeColoraboveRangeColoruseAboveRangeColoruseBelowRangeColoralpha
vectorSizevectorComponent
vectorModeindexedLookupr   ry   r  r   arrays)r\  r   r
  r   GetSaturationRangeGetTablerj  r   r   r   GetNumberOfColorsGetNanColorGetBelowRangeColorGetAboveRangeColorGetUseAboveRangeColorGetUseBelowRangeColorGetAlphaGetVectorSizeGetVectorComponentGetVectorModeGetIndexedLookup)
r   r  r  r   r
  r  lookupTableRangelookupTableHueRangelutSatRanger   s
             r   r:  r:  _  s    F"++--({M** 	##$78888 	 	 	D	 0022K %'(<(<(>(>HH	 	%(2In%MM)$$$ ((00((**);;==*%+*#//11*==??*==??*5*K*K*M*M"X$$SX*5*K*K*M*M"X$$SX ))++%3355*==??%3355(99;;!
 
$ -  s   A 
AAc                 6   |                                  }t          |          }|rst                      }|                                 }t	          |dt          |          i}t          ||          D ]%\  }} |j        |gd |d d         D             R   &|S d S )Nr   c                     g | ]}|d z  S )   r   )rL   r   s     r   rO   z6lookupTableToColorTransferFunction.<locals>.<listcomp>  s     9 9 913 9 9 9r   r`   )r  r]   r   GetTableRanger   lenzipAddRGBPoint)r  rW   tablectf
tableRangepointsr   rgbas           r   "lookupTableToColorTransferFunctionr8    s    $$&&II&&E &(( ..00
:63u::6665)) 	; 	;GAtCOA: 9 9RaR 9 9 9:::::
 r   c                 N    t          |          }|rt          | ||||          S d S r-   )r8  r;  )r   r  r  r   r
  r4  s         r   lookupTableSerializer2r:    s;    
,[
9
9C
 [.vsM7TYZZZ[ [r   c                    t          |d          r|                                nd}t          |d          r|                                ng d}|dk    r$t          |d          r|                                }|                    |           ||                                i d|d|d	|                                d
|                                d|                                d|                                d|	                                d|
                                d|                                d|                                d|                                d|                                d|                                rdndd|                                rdndd|                                rdndd|                                d|                                d|                                rdndidS )NGetRepresentationr_   GetDiffuseColor)r	   r	   r	   r	   r   representationdiffuseColorr   ambientColorspecularColor	edgeColorambientdiffusespecularspecularPoweropacityinterpolationedgeVisibilityr   backfaceCullingfrontfaceCulling	pointSize	lineWidthlightingr   ry   r  r   )r   r<  r=  r   r   r   GetAmbientColorGetSpecularColorGetEdgeColor
GetAmbient
GetDiffuseGetSpecularGetSpecularPower
GetOpacityGetInterpolationGetEdgeVisibilityGetBackfaceCullingGetFrontfaceCullingGetPointSizeGetLineWidthGetLighting)r   propObj	propObjIdr   r
  r>  
colorToUses          r   r>  r>    s   4;$5& 5& -W..000+, .5"/$ /$ 3((***)2 ww
;;%%''
 ((00$$&&
n
J
 W%%''
 G3355	

 W5577
 --//
 w))++
 w))++
 ++--
 W5577
 w))++
 W5577
 7#<#<#>#>EaaA
 G$>$>$@$@Gqqa
 W%@%@%B%B I
  --//!
" --//#
$ W00229%
 
	  r   c                     g }g }|                                 }|rh|                    |          }t          |||||dz             }	|	r;|                    |	           |                    ddt	          |          gg           |                                }
|
rh|                    |
          }t          ||
|||dz             }|r;|                    |           |                    ddt	          |          gg           |dd|                    d          ggdd|                    d          ggddt          |	                                           gggz  }|                    |           ||
                                |                                |                                |                                |                                |                                |                    d          |                                d||d	S )
Nr	   setScalarOpacityr   setRGBTransferFunctionsetScalarOpacityUnitDistancesetComponentWeightsetUseGradientOpacity)independentComponentsinterpolationTyperC  rD  shaderE  rF  r   ry   r  r   r|   r   )GetScalarOpacityr   r  r   r   GetRGBTransferFunctionGetScalarOpacityUnitDistanceGetComponentWeightintGetDisableGradientOpacityr   GetIndependentComponentsGetInterpolationTyperS  rT  GetShaderU  rV  )r   r_  r`  r   r
  r|   r   ofunofunIdofunInstancectfunctfunIdctfunInstances                r   r?  r?    sA   LE ##%%D D''--(T67EAI7 7 	D---LL,q&...ABCCC **,,E K((//)UGWeai9 9 	K...LL2Qw4HIJJJ		'!W-Q-QRS-T-T)UV	7#=#=a#@#@AB	 1cg.O.O.Q.Q*Q&R&R"ST E ((00$$&&%,%E%E%G%G!(!=!=!?!?))++))++%%''++A..$5577
 
 %  r   c           
      d   g }g }|                                 }|rvt          |          }|                    |          }	t          |||	||dz             }
|
r:|                    |
           |                    dt          |	          gg           |                    |           ||                                |                                |                                |	                                |
                                |                                |                                d||dS )Nr	   rd  )ri  colorWindow
colorLevelrC  rD  rG  rk  )r  r8  r   r  r   r   r   rs  GetColorWindowGetColorLevelrS  rT  rW  )r   r_  r`  r   r
  r   r|   r  rx  ry  rz  s              r   r@  r@    sB   EL((**K H2;??((//)UGWeai9 9 	H...LL2VG__4EFGGG ((00$$&&!(!=!=!?!?"1133!//11))++))++))++
 
 %  r   c                 `                                    }t          d          rfdt          d          D             }ng d}g }t          || |           |                    |           ||                                                                                                |d|dS )NGetDirectionMatrixc                 `    g | ]*}                                                     d |          +S )r   )r  r  )rL   r   rl   s     r   rO   z'imageDataSerializer.<locals>.<listcomp>"  sE     ( ( ( //11<<QBB ( ( (r   	   )	r	   r   r   r   r	   r   r   r   r	   )spacingr  
dimensions	directionr  )r   r   rV   r  r   
GetSpacingr  GetDimensions)r   rl   	datasetIdr   r
  datasetTyper  r  s    `      r   rB  rB    s    &&((Kw,-- ( ( ( (#Ahh( ( (		  	
 F&&'7;;; ((00))++''))!//11"	
 
   r   c                    |                                 }|r|                                ri }t          |                                                                |          }d|d<   ||d<   |                                r|                                                                                                dk    rDt          |                                                                |          }||d<   d|d         d<   |                                r|                                                                                                dk    rDt          |                                                                |          }	|	|d<   d|d         d<   |                                r|                                                                                                dk    rDt          |                                                                |          }
|
|d<   d|d         d<   |                                r|                                                                                                dk    rDt          |                                                                |          }||d	<   d|d	         d<   g |d
<   t          |d
         | ||           |
                    |           |||dS |j        rt          d           d S d S )N	vtkPointsrd  r6  r   vertsvtkCellArraylinespolysstripsr   rO  zThis dataset has no points!)r   	GetPointsrj  GetDataGetVertsr   GetLinesGetPolys	GetStripsr  r   r   r   )r   rl   r  r   r
  r  r   r6  _verts_lines_polys_stripss               r   rA  rA  =  s   &&((K *
7$$&& *

 %W%6%6%8%8%@%@%B%BGLL(z%
8  	='"2"2"4"4"<"<">">"P"P"R"RUV"V"V()9)9););)C)C)E)EwOOF"(Jw.<Jw
+  	='"2"2"4"4"<"<">">"P"P"R"RUV"V"V()9)9););)C)C)E)EwOOF"(Jw.<Jw
+  	='"2"2"4"4"<"<">">"P"P"R"RUV"V"V()9)9););)C)C)E)EwOOF"(Jw.<Jw
+  	>7#4#4#6#6#>#>#@#@#R#R#T#TWX#X#X)!!##++--w8 8G#*Jx /=Jx ,  "
8j2FGWMMM ,,V44$	
 
 	
  -+,,,,,- -r   c                    d }|                     d          rLt                      }|                    |           |                                 |                                }nc|                     d          sLt                      }|                    |           |                                 |                                }n|}t          | ||||          S )NvtkCompositeDataSetr"  )r   r   SetInputDataUpdate	GetOutputr   rA  )r   r  r  r   r
  rl   gfs          r   rC  rC  r  s    G~~+,, +--

###
		,,..^^M**   

###
		,,..fg|WeLLLr   c                 v   g }t          |                                          D ]1}g d}|                    ||           |                    |           2|                    |           ||                                |                                rdnd|                                |                                rdnd|	                                rdnd|
                                |                                |                                |                                |                                |d
dS )N)r   r   r   r   r   r   r	   r   )
clamping
colorSpacehSVWrapallowDuplicateScalarsr  r  r  r  r  nodesrO  )rV   GetSizeGetNodeValuer   r   r   GetClampingGetColorSpace
GetHSVWrapGetAllowDuplicateScalarsr$  r&  r%  r'  r(  r   r   rV  r   r
  r  r   nodes           r   r;  r;    sF   E8##%%&&  !!!a&&&T ((00%%''%1133:"0022$//118qqq +3*K*K*M*M%TQQST&&(('::<<"0022"0022%6688
 
	  r   c                 T   g }t          |                                          D ]1}g d}|                    ||           |                    |           2|                    |           ||                                |                                |                                |ddS )N)r   r   r   r   )r  r  r  rO  )rV   r  r  r   r   r   r  r  r  s           r   r<  r<    s    E8##%%&&  ||a&&&T ((00%%'' ,,..%-%F%F%H%H
 
		 	 	r   c                     g }g }g }|                                 }|                    |          }	t          |||	||dz             }
|
r:|                    |
           |                    dt	          |	          gg           |                                }t          |                                          D ]n}|                    |          }|                    |          }t          |||||dz             }|r*|                    |           |                    |           o||	                    d|z  |dd          z  }|                    |           ||
                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                |                                d||dS )Nr	   setActiveCameraz%s-propsaddViewPropremoveViewProp)
backgroundbackground2r   twoSidedLightinglightFollowCameralayerpreserveColorBufferpreserveDepthBuffernearClippingPlaneToleranceclippingRangeExpansion
useShadowsuseDepthPeelingocclusionRatiomaximumNumberOfPeelsinteractiverk  )GetActiveCamerar   r  r   r   GetViewPropsrV   GetNumberOfItemsGetItemAsObjectr   r   GetBackgroundGetBackground2r   GetTwoSidedLightingGetLightFollowCameraGetLayerGetPreserveColorBufferGetPreserveDepthBufferGetNearClippingPlaneToleranceGetClippingRangeExpansionGetUseShadowsGetUseDepthPeelingGetOcclusionRatioGetMaximumNumberOfPeelsGetInteractive)r   r   rV  r   r
  r|   viewPropIdsr   r  r  r  viewPropCollectionrpIdxviewProp
viewPropIdviewPropInstances                   r   rE  rE    s   LKE %%''F%%f--H&&(GUQY8 8N >N+++'&*:*:);<=== "..00)::<<== + +%55e<<++H55
,h
GUQY@ @ 	+ 0111z***	W,,Z-2.34?P`b b bE ((00%%''"0022#2244 ,,.. !) < < > >!)!>!>!@!@&&((#+#B#B#D#D#+#B#B#D#D*2*P*P*R*R&.&H&H&J&J"0022'::<<&88::$,$D$D$F$F#2244)
 
, %7  r   c                     |                     |           ||                                |                                |                                |                                |                                ddS )N)
focalPointr  viewUpclippingRangerO  )r   r   GetFocalPointr  	GetViewUpGetClippingRange)r   r   rV  r   r
  s        r   rF  rF    sz    ((00%%''"0022 ,,..((**%6688	
 
	
 
 
r   c           	      ,   g }g }|                                 }t          |                                          D ]n}|                    |          }	|                    |	          }
t          ||	|
||dz             }|r*|                    |           |                    |
           o|                    ||dd          }|                    |           ||                                d|	                                i|||
                                dS )Nr	   addRendererremoveRenderernumberOfLayers)r   ry   r  r   r|   r   rT  )GetRenderersrV   r  r  r   r  r   r   r   GetNumberOfLayersr   )r   r   rV  r   r
  r|   rendererIdsrendererCollectionrIdxrenderer
rendererIdrendererInstancer   s                r   rD  rD    s;   LK!..00(99;;<< + +%55d;;++H55
,h
GUQY@ @ 	+ 0111z***++{M+;= =E ((00%%''h88::
 %""$$
 
 
r   )Fr   r.   r=   rP   r   r?   vtk.vtkCommonCorer   r   vtk.vtkCommonDataModelr   vtk.vtkFiltersGeometryr   r   vtk.vtkRenderingCorer   enumsr
   r   
memoryviewr0   r   r7   r6   r4   r9   rI   r]   rv   r   r   r   r  r   r  r  rG  r  r   r   rU  rW  r`  rj  rq  r  r3  r  r4  r5  r  r6  r7  r9  r=  r8  r:  r8  r:  r>  r?  r@  rB  rA  rC  r;  r<  rE  rF  rD  r   r   r   <module>r     s     				    C C C C C C C C 0 0 0 0 0 0        : 9 9 9 9 9      # # # 
<<   , 
									  6 6 6I I I     
> 
> 
>( ( (V
 
 
1 1 1k k k k k k k kb 
  
6 
6 
6MD MD MDj  $ $ $      *    >. . .. W`ajUk ?2 ?2 ?2 ?2J  @ @ @J  ." " "N4
 4
 4
r  .  .  &   	 	 	, , ,b	 	 	[ [ [     H. . .f  B  >0- 0- 0-jM M M*  F  ,9 9 9|       r   