Ë
    
Þ~f¬]  ã                   ó6  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZ d d	lmZ d
Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z!y)é    N)ÚvtkWindowToImageFilter)ÚvtkPNGReaderÚvtkPNGWriterÚvtkJPEGWriter)ÚvtkImageData)ÚvtkUnsignedCharArray)ÚvtkPResampleFilter)Ú	iteritemsÚgetJSArrayType)Úupdate_cameraÚcreate_spherical_cameraÚcreate_cylindrical_camera)ÚDataHandlerÚABCDEFGHIJKLMNOPQRSTUVWXYZc                   ó&   — e Zd Zdd„Zd„ Zd„ Zd„ Zy)ÚCaptureRenderWindowc                 óÎ   — t        «       | _        | j                  j                  |«       | j                  j                  «        | j                  j	                  «        d | _        y ©N)r   ÚwindowToImageÚSetScaleÚSetInputBufferTypeToRGBÚReadFrontBufferOnÚwriter)ÚselfÚmagnifications     ú>lib/python3.12/site-packages/vtkmodules/web/dataset_builder.pyÚ__init__zCaptureRenderWindow.__init__   sL   € Ü3Ó5ˆÔØ×Ñ×#Ñ# MÔ2Ø×Ñ×2Ñ2Ô4Ø×Ñ×,Ñ,Ô.Øˆ�ó    c                 ó:   — | j                   j                  |«       y r   )r   ÚSetInput)r   ÚrenderWindows     r   ÚSetRenderWindowz#CaptureRenderWindow.SetRenderWindow!   s   € Ø×Ñ×#Ñ# LÕ1r   c                 ó$  — |dk(  rCt        «       | _        | j                  j                  | j                  j	                  «       «       y |dk(  rCt        «       | _        | j                  j                  | j                  j	                  «       «       y y )Nú	image/pngú	image/jpg)r   r   ÚSetInputConnectionr   ÚGetOutputPortr   )r   ÚmimeTypes     r   Ú	SetFormatzCaptureRenderWindow.SetFormat$   sk   € Ø�{Ò"Ü&›.ˆDŒKØ�K‰K×*Ñ*¨4×+=Ñ+=×+KÑ+KÓ+MÕNØ˜Ò$Ü'›/ˆDŒKØ�K‰K×*Ñ*¨4×+=Ñ+=×+KÑ+KÓ+MÕNð %r   c                 óð   — | j                   rj| j                  j                  «        | j                  j                  «        | j                   j	                  |«       | j                   j                  «        y y r   )r   r   ÚModifiedÚUpdateÚSetFileNameÚWrite)r   Úpaths     r   Ú
writeImagezCaptureRenderWindow.writeImage,   sT   € Ø�;Š;Ø×Ñ×'Ñ'Ô)Ø×Ñ×%Ñ%Ô'Ø�K‰K×#Ñ# DÔ)Ø�K‰K×ÑÕð	 r   N)é   )Ú__name__Ú
__module__Ú__qualname__r   r"   r)   r0   © r   r   r   r      s   „ óò2òOó r   r   c                   ó8   — e Zd Zi i fd„Zd„ Zd„ Zd„ Zdd„Zd„ Zy)	ÚDataSetBuilderc                 ó  — t        |«      | _        || _        d | _        t	        «       | _        t        |«      D ]!  \  }}| j                  j                  ||«       Œ# t        |«      D ]!  \  }}| j                  j                  ||«       Œ# y r   )	r   ÚdataHandlerÚcameraDescriptionÚcamerar   ÚimageCapturer
   ÚaddMetaDataÚ
addSection)r   ÚlocationÚcamera_dataÚmetadataÚsectionsÚkeyÚvalues          r   r   zDataSetBuilder.__init__:   s}   € Ü& xÓ0ˆÔØ!,ˆÔØˆŒÜ/Ó1ˆÔä# HÖ-‰JˆC�Ø×Ñ×(Ñ(¨¨eÕ4ð .ô $ HÖ-‰JˆC�Ø×Ñ×'Ñ'¨¨UÕ3ñ .r   c                 ó   — | j                   S r   )r9   ©r   s    r   ÚgetDataHandlerzDataSetBuilder.getDataHandlerF   s   € Ø×ÑÐr   c                 ó   — | j                   S r   )r;   rF   s    r   Ú	getCamerazDataSetBuilder.getCameraI   s   € Ø�{‰{Ðr   c                 ód   — t        | j                  |«       | j                  j                  «        y r   )r   Úrendererr!   ÚRender)r   r;   s     r   ÚupdateCamerazDataSetBuilder.updateCameraL   s"   € Ü�d—m‘m VÔ,Ø×Ñ× Ñ Õ"r   Nc                 óh  ‡— |�r|| _         || _        | j                  j                  |«       | j                  r“| j                  d   dk(  r8t        || j                  | j                  d   | j                  d   «      | _        nI| j                  d   dk(  r7t        || j                  | j                  d   | j                  d   «      | _        |j                  «       Šdt        ˆfd„t        d	«      D «       «      z  }| j                  j                  d
|«       | j                  j                  «        y )NÚtypeÚ	sphericalÚphiÚthetaÚcylindricalÚtranslationzrgb(%d, %d, %d)c              3   ó@   •K  — | ]  }t        ‰|   d z  «      –— Œ y­w)éÿ   N)Úint)Ú.0ÚiÚbgColors     €r   Ú	<genexpr>z'DataSetBuilder.start.<locals>.<genexpr>l   s#   øè ø€ ð 6Ù/7¨!”�G˜A‘J Ñ$×%©xùs   ƒé   ÚbackgroundColor)r!   rK   r<   r"   r:   r   r9   r;   r   ÚGetBackgroundÚtupleÚranger=   ÚupdateBasePattern)r   r!   rK   ÚbgColorStringrZ   s       @r   ÚstartzDataSetBuilder.startP   s%  ø€ Úà ,ˆDÔØ$ˆDŒMð ×Ñ×-Ñ-¨lÔ;ð ×%Ò%Ø×)Ñ)¨&Ñ1°[Ò@Ü"9Ø Ø×(Ñ(Ø×.Ñ.¨uÑ5Ø×.Ñ.¨wÑ7ó	#�D•Kð ×+Ñ+¨FÑ3°}ÒDÜ";Ø Ø×(Ñ(Ø×.Ñ.¨uÑ5Ø×.Ñ.¨}Ñ=ó	#�D”Kð ×,Ñ,Ó.ˆGØ-´ó 6Ü/4°Q¬xó6ó 1ñ ˆMð ×Ñ×(Ñ(Ð):¸MÔJð 	×Ñ×*Ñ*Õ,r   c                 ó8   — | j                   j                  «        y r   )r9   ÚwriteDataDescriptorrF   s    r   ÚstopzDataSetBuilder.stopt   s   € Ø×Ñ×,Ñ,Õ.r   )NN)	r2   r3   r4   r   rG   rI   rM   rc   rf   r5   r   r   r7   r7   9   s&   „ Ø79ÀBó 
4ò òò#ó"-óH/r   r7   c                   ó$   — e Zd Zi i fd„Zd„ Zd„ Zy)ÚImageDataSetBuilderc                 óØ   — t         j                  | ||||«       d|j                  d«      d   z   }| j                  j	                  dd||¬«       | j
                  j                  |«       y )NÚ.Ú/r1   ÚimageÚblob)ÚnamerO   r(   ÚfileName)r7   r   Úsplitr9   ÚregisterDatar<   r)   )r   r?   ÚimageMimeTypeÚ
cameraInforA   rB   ÚimageExtenstions          r   r   zImageDataSetBuilder.__init__~   sj   € Ü×Ñ  h°
¸HÀhÔOØ × 3Ñ 3°CÓ 8¸Ñ ;Ñ;ˆØ×Ñ×%Ñ%Ø˜v°Èð 	&ô 	
ð 	×Ñ×#Ñ# MÕ2r   c                 ól   — | j                   j                  | j                  j                  d«      «       y ©Nrl   )r<   r0   r9   ÚgetDataAbsoluteFilePathrF   s    r   r0   zImageDataSetBuilder.writeImage†   s'   € Ø×Ñ×$Ñ$ T×%5Ñ%5×%MÑ%MÈgÓ%VÕWr   c                 óî   — | j                   D ]f  }t        | j                  |«       | j                  j	                  «        | j
                  j                  | j                  j                  d«      «       Œh y rv   )	r;   r   rK   r!   rL   r<   r0   r9   rw   )r   Úcams     r   ÚwriteImageszImageDataSetBuilder.writeImages‰   sX   € Ø—;”;ˆCÜ˜$Ÿ-™-¨Ô-Ø×Ñ×$Ñ$Ô&Ø×Ñ×(Ñ(Ø× Ñ ×8Ñ8¸ÓAõñ r   N)r2   r3   r4   r   r0   rz   r5   r   r   rh   rh   }   s   „ ØEGÐRTó 3òXór   rh   c                   óD   — e Zd Zi i fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d
d„Z
y	)ÚVolumeCompositeDataSetBuilderc                 óø  — t         j                  | ||||«       | j                  j                  dd«       || _        d|j                  d«      d   z   | _        |dk(  rt        «       | _        |dk(  rt        «       | _        t        «       | _        | j                  j                  | j                  «       t        «       | _        d | _        i | _        i | _        g g i i g dœ| _        d	| _        d	| _        i | _        y )
Nzvolume-compositez
rgba+depthrj   rk   r1   r$   r%   )ÚlayersÚ
dimensionsÚfieldsÚlayer_fieldsÚpipelineÚ )r7   r   r9   ÚaddTypesrr   rp   rt   r   ÚimageWriterr   r   ÚimageDataColorÚSetInputDataÚimageDataDepthÚdepthToWriteÚ	layerInfoÚcolorByMappingÚcompositePipelineÚactiveDepthKeyÚactiveRGBKeyÚnodeWithChildren)r   r?   rr   rs   rA   rB   s         r   r   z&VolumeCompositeDataSetBuilder.__init__–   sð   € Ü×Ñ  h°
¸HÀhÔOà×Ñ×!Ñ!Ð"4°lÔCà*ˆÔØ" ]×%8Ñ%8¸Ó%=¸aÑ%@Ñ@ˆÔà˜KÒ'Ü+›~ˆDÔØ˜KÒ'Ü,›ˆDÔä*›nˆÔØ×Ñ×%Ñ% d×&9Ñ&9Ô:ä*›nˆÔØ ˆÔàˆŒØ ˆÔàØØØØñ"
ˆÔð !ˆÔØˆÔØ "ˆÕr   c                 óº   — || j                   v r| j                   |   S t        t        | j                   «         }|| j                   |<   || j                  d   |<   |S )Nr€   )r‹   Úencode_codesÚlenrŒ   )r   ÚcolorByÚ	colorCodes      r   Ú_getColorCodez+VolumeCompositeDataSetBuilder._getColorCode¶   sc   € Ø�d×)Ñ)Ñ)à×&Ñ& wÑ/Ð/ô %¤S¨×)<Ñ)<Ó%=Ñ>ˆIà+4ˆD×Ñ Ñ(à:AˆD×"Ñ" 8Ñ,¨YÑ7àÐr   c                 ój  — || j                   v r| j                   |   d   dfS t        t        | j                   «         }|||dœ| j                   |<   | j                  d   j	                  |«       g | j                  d   |<   |r‹|| j
                  vr3|g g dœ}|| j
                  |<   | j                  d   j	                  |«       | j
                  |   d   j	                  ||gd	œ«       | j
                  |   d
   j	                  |«       |dfS | j                  d   j	                  ||gd	œ«       |dfS )NÚcodeF)r—   rn   Úparentr~   r�   )rn   ÚidsÚchildrenr‚   rš   )rn   r™   r™   T)rŠ   r‘   r’   rŒ   Úappendr�   )r   r˜   Ú	layerNameÚ	layerCodeÚrootNodes        r   Ú_getLayerCodez+VolumeCompositeDataSetBuilder._getLayerCodeÄ   sT  € Ø˜Ÿ™Ñ&à—N‘N 9Ñ-¨fÑ5°uÐ=Ð=ä$¤S¨¯©Ó%8Ñ9ˆIà!Ø!Ø ñ)ˆD�N‰N˜9Ñ%ð
 ×"Ñ" 8Ñ,×3Ñ3°IÔ>Ø@BˆD×"Ñ" >Ñ2°9Ñ=ñ Ø ×!6Ñ!6Ñ6à(.°rÀrÑJ�HØ4<�D×)Ñ)¨&Ñ1Ø×*Ñ*¨:Ñ6×=Ñ=¸hÔGð ×%Ñ% fÑ-¨jÑ9×@Ñ@Ø&°	¨{Ñ;ôð ×%Ñ% fÑ-¨eÑ4×;Ñ;¸IÔFð ˜tÐ$Ð$ð	 ×&Ñ& zÑ2×9Ñ9Ø&°	¨{Ñ;ôð ˜tÐ$Ð$r   c                 óp   — || j                   d   |   v ry| j                   d   |   j                  |«       y)Nr�   FT)rŒ   r›   )r   r�   r”   s      r   Ú_needToRegisterColorz2VolumeCompositeDataSetBuilder._needToRegisterColorç   s>   € Ø˜×.Ñ.¨~Ñ>¸yÑIÑIØà×"Ñ" >Ñ2°9Ñ=×DÑDÀYÔOØr   c           	      óš  — | j                  ||«      \  }}| j                  |«      }| j                  ||«      }d|z  | _        |›|›d�| _        |r-| j
                  j                  | j                  dd|z  |g¬«       |rL| j
                  j                  | j                  dd|›|›d| j                  ›�|›|›�g| j                  ¬«       y y )	Nz%s_depthÚ_rgbÚarrayz/%s_depth.uint8©rn   rO   ro   Ú
categoriesrm   rk   )rn   rO   ro   r¦   r(   )	rŸ   r•   r¡   r�   rŽ   r9   rq   rt   rr   )r   r˜   rn   r“   r�   ÚneedToRegisterDepthr”   ÚneedToRegisterColors           r   ÚactivateLayerz+VolumeCompositeDataSetBuilder.activateLayerî   sã   € Ø)-×);Ñ);¸FÀDÓ)IÑ&ˆ	Ð&Ø×&Ñ& wÓ/ˆ	Ø"×7Ñ7¸	À9ÓMÐð )¨9Ñ4ˆÔÙ*3²YÐ?ˆÔñ Ø×Ñ×)Ñ)Ø×(Ñ(ØØ*¨YÑ6Ø%˜;ð	 *ô ñ Ø×Ñ×)Ñ)Ø×&Ñ&ÙÙ*3²YÀ×@TÒ@TÐUÙ&/±Ð;Ð<Ø×+Ñ+ð *õ ð r   c                 óÂ  — | j                   j                  «       d   }| j                   j                  «       d   }| j                  st        ||z  «      | _        | j                  D �]i  }| j                  |«       | j                  j                  | j                  «      }| j                  j                  | j                  «      }|j                  | j                  «       | j                  j                  |«       | j                  j                  «        |j                  | j                   «       | j                   j#                  «       j%                  d«      }|j'                  «       }t)        |«      D ])  }	t+        |j-                  |	«      «      | j                  |	<   Œ+ t/        |d«      5 }
|
j1                  | j                  «       d d d «       �Œl y # 1 sw Y   �ŒxxY w)Nr   r1   Úwb)r!   ÚGetSizer‰   Ú	bytearrayr;   rM   r9   rw   rŽ   r�   ÚGetColorImager†   r…   r-   r.   ÚGetDepthImagerˆ   ÚGetPointDataÚGetArrayÚGetNumberOfTuplesr`   rW   ÚGetValueÚopenÚwrite)r   ÚmapperÚwidthÚheightry   Ú	imagePathÚ	depthPathÚ
inputArrayÚsizeÚidxÚfs              r   Ú	writeDataz'VolumeCompositeDataSetBuilder.writeData	  s€  € Ø×!Ñ!×)Ñ)Ó+¨AÑ.ˆØ×"Ñ"×*Ñ*Ó,¨QÑ/ˆà× Ò Ü )¨%°&©.Ó 9ˆDÔà—;•;ˆCØ×Ñ˜cÔ"Ø×(Ñ(×@Ñ@À×ARÑARÓSˆIØ×(Ñ(×@Ñ@À×ATÑATÓUˆIð
 × Ñ  ×!4Ñ!4Ô5Ø×Ñ×(Ñ(¨Ô3Ø×Ñ×"Ñ"Ô$ð
 × Ñ  ×!4Ñ!4Ô5Ø×,Ñ,×9Ñ9Ó;×DÑDÀQÓGˆJØ×/Ñ/Ó1ˆDÜ˜T–{�Ü),¨Z×-@Ñ-@ÀÓ-EÓ)F�×!Ñ! #Ò&ð #ô �i Ô&¨!Ø—‘˜×)Ñ)Ô*÷ 'Ñ&ñ+ ÷* 'Ñ&ús   Æ,GÇG	c                 ól   — t         j                  | ||«       | j                  j                  ddg«       y )Né   r1   )r7   rc   r;   ÚupdatePriority)r   r!   rK   s      r   rc   z#VolumeCompositeDataSetBuilder.start(  s*   € Ü×Ñ˜T <°Ô:Ø�‰×"Ñ" A q 6Õ*r   c           
      óz  — | j                   j                  «       | j                  d<   dj                  | j                  d   «      dz   | j                  d<   | j                  j                  d| j                  «       t        j                  | «       |�rt        j                  | j                  j                  «       «      D ]ß  \  }}}t        d|«       |D ]È  }d|v sŒd|vsŒt        t        j                  j                  ||«      d	«      5 }t        j                  t        j                  j                  ||dz   «      d
«      5 }t        j                   ||«       d d d «       d d d «       t        j"                  t        j                  j                  ||«      «       ŒÊ Œá y y # 1 sw Y   ŒJxY w# 1 sw Y   ŒNxY w)Nr   ÚAr~   Údefault_pipelineÚCompositePipelineÚCompressú.uint8ú.gzÚrbr«   )r!   r¬   rŒ   Újoinr9   r>   r7   rf   ÚosÚwalkÚgetBasePathÚprintr´   r/   ÚgzipÚshutilÚcopyfileobjÚremove©r   ÚcompressÚrootÚdirsÚfilesrn   Úf_inÚf_outs           r   rf   z"VolumeCompositeDataSetBuilder.stop,  sa  € à/3×/@Ñ/@×/HÑ/HÓ/Jˆ×Ñ˜|Ñ,à�H‰H�T×+Ñ+¨HÑ5Ó6¸Ñ<ð 	×ÑÐ1Ñ2ð 	×Ñ×#Ñ#Ð$7¸×9OÑ9OÔPô 	×Ñ˜DÔ!âÜ%'§W¡W¨T×-=Ñ-=×-IÑ-IÓ-KÖ%LÑ!��d˜EÜ�j $Ô'Û!�DØ 4Ò'¨E¸Ò,=Ü!¤"§'¡'§,¡,¨t°TÓ":¸DÔAÀTÜ!%§¡Ü "§¡§¡¨T°4¸%±<Ó @À$ô"à!&Ü &× 2Ñ 2°4¸Ô ?÷"÷ Bô
 Ÿ	™	¤"§'¡'§,¡,¨t°TÓ":Õ;ñ "ñ &Mð ÷"ð "ú÷ BÐAús$   Ä8F1ÅF%	ÅF1Æ%F.Æ*F1Æ1F:N©T)r2   r3   r4   r   r•   rŸ   r¡   r©   r¿   rc   rf   r5   r   r   r|   r|   •   s2   „ ØEGÐRTó #ò@ò!%òFòò6+ò>+ô<r   r|   c                   ó2   — e Zd Zdi fd„Zd„ Zd„ Zd„ Zdd„Zy)ÚDataProberDataSetBuilderNc                 óö  — t         j                  | |d |«       || _        t        «       | _        | j                  j                  |«       |r7| j                  j                  d«       | j                  j                  |«       n| j                  j                  d«       | j                  j                  dd«       i |i g d¢dœ| _
        | j                  D ]#  }| j                  j                  |dd|z  ¬	«       Œ% y )
Nr   r1   zdata-proberÚbinary)r1   r1   r1   )Útypesr   ÚrangesÚspacingr¤   z	/%s.array©rn   rO   ro   )r7   r   ÚfieldsToWriter	   ÚresamplerFilterÚSetSamplingDimensionÚSetUseInputBoundsÚSetCustomSamplingBoundsr9   r„   Ú
DataProberrq   )r   r?   Úsampling_dimesionsÚfields_to_keepÚcustom_probing_boundsrA   Úfields          r   r   z!DataProberDataSetBuilder.__init__H  sä   € ô 	×Ñ  h°°hÔ?Ø+ˆÔÜ1Ó3ˆÔØ×Ñ×1Ñ1Ð2DÔEÙ Ø× Ñ ×2Ñ2°1Ô5Ø× Ñ ×8Ñ8Ð9NÕOà× Ñ ×2Ñ2°1Ô5ð 	×Ñ×!Ñ! -°Ô:àØ,ØÚ ñ	
ˆŒð ×'Ô'ˆEØ×Ñ×)Ñ)Ø °;ÀÑ3Fð *õ ñ (r   c                 ó:   — | j                   j                  |«       y r   )rå   r‡   )r   Údatasets     r   ÚsetDataToProbez'DataProberDataSetBuilder.setDataToProbeg  s   € Ø×Ñ×)Ñ)¨'Õ2r   c                 óV   — | j                   j                  |j                  «       «       y r   )rå   r&   r'   )r   Úsources     r   ÚsetSourceToProbez)DataProberDataSetBuilder.setSourceToProbej  s   € Ø×Ñ×/Ñ/°×0DÑ0DÓ0FÕGr   c                 óœ  — | j                   j                  «        | j                   j                  «       j                  «       }| j                  D �]m  }|j                  |«      }|�r't        |«      }t        | j                  j                  |«      d«      5 }|j                  |«       d d d «       t        |«      | j                  d   |<   || j                  d   v ry|j                  «       }|d   | j                  d   |   d   k  r|d   | j                  d   |   d<   |d   | j                  d   |   d   kD  sŒí|d   | j                  d   |   d<   �Œ|j                  «       d   |j                  «       d   g| j                  d   |<   �Œ?t        d|«       t        | j                   j                  «       «       �Œp y # 1 sw Y   �ŒxY w)Nr«   rà   rá   r   r1   zNo array for)rå   r,   Ú	GetOutputr°   rä   r±   Ú
memoryviewr´   r9   rw   rµ   r   ré   ÚGetRangerÏ   )r   Úarraysrí   r¤   Úbr¾   Ú	dataRanges          r   r¿   z"DataProberDataSetBuilder.writeDatam  s›  € Ø×Ñ×#Ñ#Ô%Ø×%Ñ%×/Ñ/Ó1×>Ñ>Ó@ˆØ×'Õ'ˆEØ—O‘O EÓ*ˆEÚÜ˜uÓ%�Ü˜$×*Ñ*×BÑBÀ5ÓIÈ4ÔPÐTUØ—G‘G˜A”J÷ Qô 3AÀÓ2G�—‘ Ñ(¨Ñ/Ø˜DŸO™O¨HÑ5Ñ5Ø %§¡Ó 0�IØ  ‘| d§o¡o°hÑ&?ÀÑ&FÀqÑ&IÒIØ>GÈ¹l˜Ÿ™¨Ñ1°%Ñ8¸Ñ;Ø  ‘| d§o¡o°hÑ&?ÀÑ&FÀqÑ&IÓIØ>GÈ¹l˜Ÿ™¨Ñ1°%Ñ8¸Ó;ð Ÿ™Ó(¨Ñ+ØŸ™Ó(¨Ñ+ð8�D—O‘O HÑ-¨eÓ4ô
 �n eÔ,Ü�d×*Ñ*×4Ñ4Ó6Ö7ñ+ (÷ QÑPús   ÂGÇG	c           
      óÐ  — | j                   j                  d| j                  «       t        j	                  | «       |�rt        j                  | j                   j                  «       «      D ]ß  \  }}}t        d|«       |D ]È  }d|v sŒd|vsŒt        t
        j                  j                  ||«      d«      5 }t        j                  t
        j                  j                  ||dz   «      d«      5 }t        j                  ||«       d d d «       d d d «       t        j                  t
        j                  j                  ||«      «       ŒÊ Œá y y # 1 sw Y   ŒJxY w# 1 sw Y   ŒNxY w)Nré   rÇ   z.arrayrÉ   rÊ   r«   )r9   r>   ré   r7   rf   rÌ   rÍ   rÎ   rÏ   r´   r/   rË   rÐ   rÑ   rÒ   rÓ   rÔ   s           r   rf   zDataProberDataSetBuilder.stop‡  s  € à×Ñ×#Ñ# L°$·/±/ÔBô 	×Ñ˜DÔ!âÜ%'§W¡W¨T×-=Ñ-=×-IÑ-IÓ-KÖ%LÑ!��d˜EÜ�j $Ô'Û!�DØ 4Ò'¨E¸Ò,=Ü!¤"§'¡'§,¡,¨t°TÓ":¸DÔAÀTÜ!%§¡Ü "§¡§¡¨T°4¸%±<Ó @À$ô"à!&Ü &× 2Ñ 2°4¸Ô ?÷"÷ Bô
 Ÿ	™	¤"§'¡'§,¡,¨t°TÓ":Õ;ñ "ñ &Mð ÷"ð "ú÷ BÐAús$   Â88EÃ0E	ÄEÅEÅEÅE%rÛ   )r2   r3   r4   r   rð   ró   r¿   rf   r5   r   r   rÝ   rÝ   G  s$   „ ð #Øóò>3òHò8ô4<r   rÝ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚConvertVolumeStackToSortedStackc                 ó.   — || _         || _        d| _        y ©Nr   )r·   r¸   r~   )r   r·   r¸   s      r   r   z(ConvertVolumeStackToSortedStack.__init__Ÿ  s   € ØˆŒ
ØˆŒØˆ�r   c           	      óð	  — i }i }g }t        j                  |«      D ]~  }d|v sd|v sŒ|j                  d«      d   d   }d|v r$t         j                  j	                  ||«      ||<   ŒK|j                  |«       t         j                  j	                  ||«      ||<   Œ€ |j                  «        t        |«      dk(  ry g }t        «       }| j                  | j                  z  t        |«      z  }	| j                  | j                  z  }
t        |«      | _        t        «       }|j                  d«       |j                  |	«       t        «       }|j                  d«       |j                  |	«       t        | j                  «      D ]÷  }|j!                  |||      «       |j#                  «        |j%                  «       j'                  «       j)                  d«      }t        |
«      D ]Y  }|j+                  ||
z  |z   |j-                  |dz  «      «       |j+                  ||
z  |z   |j-                  |dz  dz   «      «       Œ[ t/        |||      d«      5 }|j                  |j1                  «       «       d d d «       Œù t        «       }|j                  d«       |j                  |	«       t        «       }|j                  d«       |j                  |	«       t        «       }|j                  d«       |j                  |	«       t        |
«      D ]Ð  }g }|D ]!  }|j                  ||   t        |«      f«       Œ# |j                  d	„ ¬
«       t        t        |«      «      D ]|  }||   d   }|j+                  |
|z  |z   |«       |j+                  |
|z  |z   |j-                  |
|z  |z   «      «       |j+                  |
|z  |z   |j-                  |
|z  |z   «      «       Œ~ ŒÒ t/        t         j                  j	                  |d«      d«      5 }|j3                  t5        |«      «       d d d «       t/        t         j                  j	                  |d«      d«      5 }|j3                  t5        |«      «       d d d «       t/        t         j                  j	                  |d«      d«      5 }|j3                  t5        |«      «       d d d «       y # 1 sw Y   �ŒNxY w# 1 sw Y   Œ±xY w# 1 sw Y   ŒpxY w# 1 sw Y   y xY w)Nr£   Ú_depthÚ_r   r1   é   r\   rÊ   c                 ó   — | d   S rÿ   r5   )Útups    r   Ú<lambda>z9ConvertVolumeStackToSortedStack.convert.<locals>.<lambda>è  s   € ¨C°ªFr   )rC   zalpha.uint8r«   zintensity.uint8zorder.uint8)rÌ   Úlistdirrp   r/   rË   r›   Úsortr’   r   r·   r¸   r~   r   ÚSetNumberOfComponentsÚSetNumberOfTuplesr`   r-   r,   rõ   r°   r±   ÚSetValuer³   r´   Úreadrµ   rö   )r   Ú	directoryÚ
imagePathsÚ
depthPathsÚ
layerNamesro   ÚfileIdÚdepthArraysÚimageReaderÚnumberOfValuesÚ	imageSizeÚopacityÚ	intensityÚlayerÚ	rgbaArrayr½   Ú	depthFileÚ	destOrderÚopacityOrderÚintensityOrderÚpixelIdxÚ
depthStackÚ
depthArrayÚdestLayerIdxÚsourceLayerIdxr¾   s                             r   Úconvertz'ConvertVolumeStackToSortedStack.convert¤  sd  € Øˆ
Øˆ
Øˆ
ÜŸ
™
 9Ö-ˆHØ˜Ñ! X°Ò%9Ø!Ÿ™¨Ó,¨QÑ/°Ñ2�Ø˜XÑ%Ü)+¯©¯©°iÀÓ)J�J˜vÒ&à×%Ñ% fÔ-Ü)+¯©¯©°iÀÓ)J�J˜vÒ&ð .ð 	�‰Ôäˆz‹?˜aÒØð ˆÜ"“nˆØŸ™ d§k¡kÑ1´C¸
³OÑCˆØ—J‘J §¡Ñ,ˆ	Ü˜*“oˆŒô 'Ó(ˆØ×%Ñ% aÔ(Ø×!Ñ! .Ô1ä(Ó*ˆ	Ø×'Ñ'¨Ô*Ø×#Ñ# NÔ3ä˜4Ÿ;™;Ö'ˆEØ×#Ñ# J¨z¸%Ñ/@Ñ$AÔBØ×ÑÔ à#×-Ñ-Ó/×<Ñ<Ó>×GÑGÈÓJˆIä˜YÖ'�Ø×"Ñ"Ø˜YÑ&¨#Ñ-¨y×/AÑ/AÀ#ÈÁ'Ó/Jôð × Ñ Ø˜YÑ&¨#Ñ-¨y×/AÑ/AÀ#ÈÁ'ÈAÁ+Ó/Nõð	 (ô �j ¨EÑ!2Ñ3°TÔ:¸iØ×"Ñ" 9§>¡>Ó#3Ô4÷ ;Ð:ð (ô$ )Ó*ˆ	Ø×'Ñ'¨Ô*Ø×#Ñ# NÔ3ä+Ó-ˆØ×*Ñ*¨1Ô-Ø×&Ñ& ~Ô6ä-Ó/ˆØ×,Ñ,¨QÔ/Ø×(Ñ(¨Ô8ä˜iÖ(ˆHØˆJÛ)�
Ø×!Ñ! :¨hÑ#7¼¸Z»Ð"IÕJð *à�O‰OÑ 2ˆOÔ3ä %¤c¨*£oÖ 6�Ø!+¨LÑ!9¸!Ñ!<�ð ×"Ñ"Ø Ñ-°Ñ9¸>ôð ×%Ñ%Ø Ñ-°Ñ9Ø×$Ñ$ i°.Ñ&@ÀHÑ%LÓMôð ×'Ñ'Ø Ñ-°Ñ9Ø×&Ñ&¨	°NÑ(BÀhÑ'NÓOõñ !7ð )ô, ”"—'‘'—,‘,˜y¨-Ó8¸$Ô?À1Ø�G‰G”J˜|Ó,Ô-÷ @ô ”"—'‘'—,‘,˜yÐ*;Ó<¸dÔCÀqØ�G‰G”J˜~Ó.Ô/÷ Dô ”"—'‘'—,‘,˜y¨-Ó8¸$Ô?À1Ø�G‰G”J˜yÓ)Ô*÷ @Ð?÷Y ;Ñ:ú÷L @Ð?ú÷ DÐCú÷ @Ð?ús0   É SÐ	SÑS Ò#S,ÓS	ÓSÓ S)Ó,S5N)r2   r3   r4   r   r#  r5   r   r   rý   rý   ž  s   „ òó
]+r   rý   c                   ó2   — e Zd Zi i fd„Zd„ Zd„ Zd„ Zdd„Zy)ÚSortedCompositeDataSetBuilderc                 ó6  — t         j                  | |d|||«       | j                  j                  dd«       g | _        | j                  j                  ddd¬«       | j                  j                  ddd	¬«       | j                  j                  d
ddd
g¬«       y )Nr$   úsorted-compositeÚrgbaÚorderr¤   z/order.uint8rã   Úalphaz/alpha.uint8r  z/intensity.uint8r¥   )r|   r   r9   r„   ÚlayerScalarsrq   )r   r?   rs   rA   rB   s        r   r   z&SortedCompositeDataSetBuilder.__init__  s«   € Ü%×.Ñ.Ø�(˜K¨°X¸xô	
ð 	×Ñ×!Ñ!Ð"4°fÔ=ð ˆÔØ×Ñ×%Ñ%Ø˜w°ð 	&ô 	
ð 	×Ñ×%Ñ%Ø˜w°ð 	&ô 	
ð 	×Ñ×%Ñ%ØØØ'Ø#�}ð	 	&õ 	
r   c                 ó”   — t         j                  | ||«       | j                  j                  «       }t	        |d   |d   «      | _        y )Nr   r1   )r|   rc   r!   r¬   rý   ÚdataConverter)r   r!   rK   r  s       r   rc   z#SortedCompositeDataSetBuilder.start  s@   € Ü%×+Ñ+¨D°,ÀÔIØ×%Ñ%×-Ñ-Ó/ˆ	Ü<¸YÀq¹\È9ÐUVÉ<ÓXˆÕr   c                 óp   — t         j                  | dd|z  |«       | j                  j                  |«       y )NrÖ   z%s)r|   r©   r+  r›   )r   r“   Úscalars      r   r©   z+SortedCompositeDataSetBuilder.activateLayer  s3   € Ü%×3Ñ3Ø�&˜$ ™-¨ô	
ð 	×Ñ× Ñ  Õ(r   c                 óÒ   — t         j                  | |«       | j                  j                  d«       | j                  j                  d«       | j                  j                  d«       y )Nr)  r*  r  )r|   r¿   r9   rw   )r   r¶   s     r   r¿   z'SortedCompositeDataSetBuilder.writeData%  sP   € Ü%×/Ñ/°°fÔ=ð 	×Ñ×0Ñ0°Ô9Ø×Ñ×0Ñ0°Ô9Ø×Ñ×0Ñ0°Õ=r   c           
      ó¦  — t         j                  | d¬«       t        j                  | j                  j                  «       «      D ]p  \  }}}|D ]e  }t        dt        j                  j                  ||«      «       | j                  j                  t        j                  j                  ||«      «       Œg Œr t        j                  t        j                  j                  | j                  j                  «       d«      t        j                  j                  | j                  j                  «       d«      «       t        t        j                  j                  | j                  j                  «       d«      d«      5 }t        j                  |«      }|d   d   | j                  j                  | j                   d	| j                  j                   d
œ|d<   g }	|d= |d   D ]  }
|
d   dv sŒ|	j#                  |
«       Œ |	|d<   g d¢|d<   t        t        j                  j                  | j                  j                  «       d«      d«      5 }|j%                  t        j&                  |«      «       d d d «       d d d «       |rŠt        j                  | j                  j                  «       «      D ]Z  \  }}}t        d|«       |D ]C  }d|v s
d|v s|dk(  sŒt        j(                  t        j                  j                  ||«      «       ŒE Œ\ |�rt        j                  | j                  j                  «       «      D ]ß  \  }}}t        d|«       |D ]È  }d|v sŒd|vsŒt        t        j                  j                  ||«      d«      5 }t+        j                  t        j                  j                  ||dz   «      d«      5 }t-        j.                  ||«       d d d «       d d d «       t        j(                  t        j                  j                  ||«      «       ŒÊ Œá y y # 1 sw Y   �Œ²xY w# 1 sw Y   �Œ·xY w# 1 sw Y   ŒdxY w# 1 sw Y   ŒhxY w)NF)rÕ   ÚProcessz
index.jsonzindex_origin.jsonÚrrÆ   r   r   )r   r~   ÚscalarsÚSortedCompositeÚdatarn   )r)  r*  r  )ztonic-query-data-modelr'  r*  rO   ÚwÚCleanz_rgb.pngz_depth.uint8rÇ   rÈ   rÉ   rÊ   r«   )r|   rf   rÌ   rÍ   r9   rÎ   rÏ   r/   rË   r-  r#  Úrenamer´   ÚjsonÚloadr~   r+  r›   rµ   ÚdumpsrÓ   rÐ   rÑ   rÒ   )r   ÚcleanrÕ   rÖ   r×   rØ   rn   ÚinfoFilerA   Ú
dataToKeepÚitemÚnewMetaFilerÙ   rÚ   s                 r   rf   z"SortedCompositeDataSetBuilder.stop-  sr  € Ü%×*Ñ*¨4¸%Ð*Ô@ô "$§¡¨×)9Ñ)9×)EÑ)EÓ)GÖ!HÑˆD�$˜Û�Ü�i¤§¡§¡¨d°DÓ!9Ô:Ø×"Ñ"×*Ñ*¬2¯7©7¯<©<¸¸dÓ+CÕDñ ð "Iô 	�	‰	Ü�G‰G�L‰L˜×)Ñ)×5Ñ5Ó7¸ÓFÜ�G‰G�L‰L˜×)Ñ)×5Ñ5Ó7Ð9LÓMô	
ô Ü�G‰G�L‰L˜×)Ñ)×5Ñ5Ó7Ð9LÓMÈsô
àÜ—y‘y Ó*ˆHà&Ð':Ñ;¸LÑIØ×,Ñ,×3Ñ3Ø×,Ñ,¨Q°×1CÑ1C×1JÑ1JÐKñ+ˆHÐ&Ñ'ð ˆJØÐ,Ð-Ø  Ô(�Ø˜‘<Ð#BÒBØ×%Ñ% dÕ+ð )ð  *ˆH�VÑÚVˆH�VÑô Ü—‘—‘˜T×-Ñ-×9Ñ9Ó;¸\ÓJÈCôàØ×!Ñ!¤$§*¡*¨XÓ"6Ô7÷÷)
ñ4 Ü%'§W¡W¨T×-=Ñ-=×-IÑ-IÓ-KÖ%LÑ!��d˜EÜ�g˜tÔ$Û!�Dà" dÑ*Ø)¨TÑ1ØÐ#6Ó6äŸ	™	¤"§'¡'§,¡,¨t°TÓ":Õ;ñ "ð &Mò Ü%'§W¡W¨T×-=Ñ-=×-IÑ-IÓ-KÖ%LÑ!��d˜EÜ�j $Ô'Û!�DØ 4Ò'¨E¸Ò,=Ü!¤"§'¡'§,¡,¨t°TÓ":¸DÔAÀTÜ!%§¡Ü "§¡§¡¨T°4¸%±<Ó @À$ô"à!&Ü &× 2Ñ 2°4¸Ô ?÷"÷ Bô
 Ÿ	™	¤"§'¡'§,¡,¨t°TÓ":Õ;ñ "ñ &Mð ÷#ñ ú÷)
ñ 
ú÷V"ð "ú÷ BÐAúsP   Å<A.P.Ç+A!P.É%P!É1P.Î	8QÏP;	ÏQÐ!P+	Ð&P.Ð.P8Ð;QÑ QÑQN)TT)r2   r3   r4   r   rc   r©   r¿   rf   r5   r   r   r%  r%    s!   „ Ø68À2ó 
ò*Yò
)ò>ô?<r   r%  )"r:  rÌ   rÐ   rÑ   Úvtkmodules.vtkRenderingCorer   Úvtkmodules.vtkIOImager   r   r   Úvtkmodules.vtkCommonDataModelr   Úvtkmodules.vtkCommonCorer   Úvtkmodules.vtkFiltersParallelr	   Úvtkmodules.webr
   r   Úvtkmodules.web.camerar   r   r   Úvtkmodules.web.query_data_modelr   r‘   Úobjectr   r7   rh   r|   rÝ   rý   r%  r5   r   r   Ú<module>rK     s˜   ðß × å >ß KÑ KÝ 6Ý 9Ý <ç 4÷ñ õ
 8ð ,€ô ˜&ô  ô@</�Vô </ôH˜.ô ô0l< Nô l<ôdQ<˜~ô Q<ônc+ fô c+ôLh<Ð$Aõ h<r   