
    +j                     2    d Z ddlZddlZd Zd Zd Zd ZdS )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    N/DATA/AppData/hermes/venv/lib/python3.11/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$m&;"M$<m>U!W ,,,iaeaeae  hA  hA  B  C  C  	C     Kr   c                     d} t          t          j                  D ]@\  }}|dk    r5|dz   t          t          j                  k     rt          j        |dz            } A|  t          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$   (   st    HSX&& % %44<<AaC#ch--//x!}H:>>/3HIIOr   c                      d} t          t          j                  D ]@\  }}|dk    r5|dz   t          t          j                  k     rt          j        |dz            } A| d} | S )z.vtkGetTempDir() -- return vtk testing temp dirNz-Tr   .)r   r   r   r   )tempDirr#   r   s      r   vtkGetTempDirr(   4   sb    GSX&& $ $44<<AaC#ch--//hqsmGNr   c                 ,   ddl m} ddlm} ddlm} d}t          t          j                  D ]j\  }}|dk    r_|dz   t          t          j                  k     r?t          j                            t                      t          j        |dz                      }k|dS  |            }|                    |            t          j                            |          s`t!                      }|                    |           |                    |                                           |                                 d} |            }	|	                    |            |            }
|
                    |                                           |
                    |	                                           |
                                 |
                                d	k    rdS t          j                            d
|
                                z             dS )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   @   s    CBBBBB222222<<<<<<ESX&& B B44<<AaC#ch--//GLL!1!138AaC=AAE}q )(**   w~~e$$ 	"nnG&&&&&w'<'<'>'>???MMOOOG5!!!""$$  !6!6!8!8999  !5!5!7!7888$$&&",,1J6$88::; < < <1r   )__doc__r   r   r   r$   r(   rF    r   r   <module>rI      si       D
 
 

 
 
* * * * *r   