
    tj                     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    A/DATA/.local/lib/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SXX&44<AaC#chh-/xx!}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SXX&44<AaC#chh-/hhqsmG ' 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)zvtkRegressionTestImage(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SXX&44<AaC#chh-/GGLL!1388AaC=AE ' } )* ww~~e$"nG&&&w'<'<'>?MMOG5!"$  !6!6!89  !5!5!78$$&",JJ6$88:; <r   )__doc__r   r   r   r$   r(   rF    r   r   <module>rI      s$    D

*r   