Ë
    ¯·gŠ  ã                   ó0   — d Z ddlZddlZd„ Zd„ Zd„ Zd„ Zy)zLMiscellaneous functions and classes that don't fit into specific
categories.é    Nc                 óÒ   ‡ — ddl m} d|j                  |j                  |j                  |j
                  |j                  |j                  g}‰ |vrt        d‰ ›d|›�«      ‚ˆ fd„}|S )aW  set_call_data_type(type) -- convenience decorator to easily set the CallDataType attribute
    for python function used as observer callback.
    For example:

    import vtkmodules.util.calldata_type
    import vtkmodules.util.vtkConstants
    import vtkmodules.vtkCommonCore import vtkCommand, vtkLookupTable

    @calldata_type(vtkConstants.VTK_STRING)
    def onError(caller, event, calldata):
        print("caller: %s - event: %s - msg: %s" % (caller.GetClassName(), event, calldata))

    lt = vtkLookupTable()
    lt.AddObserver(vtkCommand.ErrorEvent, onError)
    lt.SetTableRange(2,1)
    r   )ÚvtkCommonCoreÚstring0Ú'z>' is not a supported VTK call data type. Supported types are: c                 ó   •— ‰| _         | S )N)ÚCallDataType)ÚfÚtypes    €ú4lib/python3.12/site-packages/vtkmodules/util/misc.pyÚwrapzcalldata_type.<locals>.wrap   s   ø€ ØˆŒØˆó    )	Ú
vtkmodulesr   Ú
VTK_STRINGÚ
VTK_OBJECTÚVTK_INTÚVTK_LONGÚ
VTK_DOUBLEÚ	VTK_FLOATÚ	TypeError)r
   r   Úsupported_call_data_typesr   s   `   r   Úcalldata_typer      s|   ø€ õ" )Ø!*¨M×,DÑ,DØ×$Ñ$ m×&;Ñ&;Ø×"Ñ" M×$<Ñ$<¸m×>UÑ>Uð!WÐð Ð,Ñ,ÝÒaeñ  hAð  Bó  Cð  	Côð €Kr   c                  ó  — d} t        t        j                  «      D ]A  \  }}|dk(  sŒ|dz   t        t        j                  «      k  sŒ,t        j                  |dz      } ŒC | € t        j
                  j                  dd«      } | S )z5vtkGetDataRoot() -- return vtk example data directoryNz-Dé   ÚVTK_DATA_ROOTz../../../../VTKData)Ú	enumerateÚsysÚargvÚlenÚosÚenvironÚget)ÚdataRootÚir   s      r   ÚvtkGetDataRootr$   (   sk   € à€HÜœSŸX™XÖ&‰ˆˆ4Ø�4‹<˜A˜a™C¤#¤c§h¡h£-Ó/Ü—x‘x  !¡‘}‰Hð 'ð ÐÜ—:‘:—>‘> /Ð3HÓIˆà€Or   c                  óÌ   — d} t        t        j                  «      D ]A  \  }}|dk(  sŒ|dz   t        t        j                  «      k  sŒ,t        j                  |dz      } ŒC | €d} | S )z.vtkGetTempDir() -- return vtk testing temp dirNz-Tr   Ú.)r   r   r   r   )ÚtempDirr#   r   s      r   ÚvtkGetTempDirr(   4   sZ   € à€GÜœSŸX™XÖ&‰ˆˆ4Ø�4‹<˜A˜a™C¤#¤c§h¡h£-Ó/Ü—h‘h˜q ™s‘m‰Gð 'ð €Øˆà€Nr   c                 ó   — ddl m} ddlm} ddlm} d}t        t        j                  «      D ]g  \  }}|dk(  sŒ|dz   t        t        j                  «      k  sŒ,t        j                  j                  t        «       t        j                  |dz      «      }Œi |€y |«       }|j                  | «       t        j                  j                  |«      sLt!        «       }|j#                  |«       |j%                  |j'                  «       «       |j)                  «        d} |«       }	|	j#                  |«        |«       }
|
j%                  |j'                  «       «       |
j+                  |	j'                  «       «       |
j-                  «        |
j/                  «       d	k  ryt        j0                  j3                  d
|
j/                  «       z  «       y)zÇvtkRegressionTestImage(renWin) -- produce regression image for window

    This function writes out a regression .png file for a vtkWindow.
    Does anyone involved in testing care to elaborate?
    r   )ÚvtkWindowToImageFilter)ÚvtkPNGReader)ÚvtkImageDifferenceNz-Vr   é   é
   zFailed image test: %f
)Úvtkmodules.vtkRenderingCorer*   Úvtkmodules.vtkIOImager+   Úvtkmodules.vtkImagingCorer,   r   r   r   r   r   ÚpathÚjoinr$   ÚSetInputÚisfileÚvtkPNGWriterÚSetFileNameÚSetInputConnectionÚGetOutputPortÚWriteÚSetImageConnectionÚUpdateÚGetThresholdedErrorÚstderrÚwrite)ÚrenWinr*   r+   r,   Úfnamer#   r   Úrt_w2ifÚrt_pngwÚrt_pngÚrt_ids              r   ÚvtkRegressionTestImagerF   @   sd  € õ CÝ2Ý<à€EÜœSŸX™XÖ&‰ˆˆ4Ø�4‹<˜A˜a™C¤#¤c§h¡h£-Ó/Ü—G‘G—L‘L¤Ó!1´3·8±8¸A¸a¹C±=ÓA‰Eð 'ð €}Øñ )Ó*ˆØ×Ñ˜Ô ä�w‰w�~‰~˜eÔ$Ü"“nˆGØ×Ñ Ô&Ø×&Ñ& w×'<Ñ'<Ó'>Ô?Ø�M‰MŒOØˆGá“ˆØ×Ñ˜5Ô!á"Ó$ˆØ× Ñ  ×!6Ñ!6Ó!8Ô9Ø× Ñ  ×!5Ñ!5Ó!7Ô8Ø�‰Œà×$Ñ$Ó&¨"Ò,Øä�J‰J×ÑÐ6Ø$×8Ñ8Ó:ñ;ô <àr   )Ú__doc__r   r   r   r$   r(   rF   © r   r   Ú<module>rI      s$   ðñ÷ òòD
ò
ó*r   