You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
2 years ago
|
"""Miscellaneous functions and classes that dont fit into specific
|
||
|
categories."""
|
||
|
|
||
|
import sys, os, vtk
|
||
|
|
||
|
#----------------------------------------------------------------------
|
||
|
# the following functions are for the vtk regression testing and examples
|
||
|
|
||
|
def vtkGetDataRoot():
|
||
|
"""vtkGetDataRoot() -- return vtk example data directory
|
||
|
"""
|
||
|
dataIndex=-1;
|
||
|
for i in range(0, len(sys.argv)):
|
||
|
if sys.argv[i] == '-D' and i < len(sys.argv)-1:
|
||
|
dataIndex = i+1
|
||
|
|
||
|
if dataIndex != -1:
|
||
|
dataRoot = sys.argv[dataIndex]
|
||
|
else:
|
||
|
try:
|
||
|
dataRoot = os.environ['VTK_DATA_ROOT']
|
||
|
except KeyError:
|
||
|
dataRoot = '../../../../VTKData'
|
||
|
|
||
|
return dataRoot
|
||
|
|
||
|
|
||
|
def vtkRegressionTestImage( renWin ):
|
||
|
"""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?
|
||
|
"""
|
||
|
imageIndex=-1;
|
||
|
for i in range(0, len(sys.argv)):
|
||
|
if sys.argv[i] == '-V' and i < len(sys.argv)-1:
|
||
|
imageIndex = i+1
|
||
|
|
||
|
if imageIndex != -1:
|
||
|
fname = os.path.join(vtkGetDataRoot(), sys.argv[imageIndex])
|
||
|
|
||
|
rt_w2if = vtk.vtkWindowToImageFilter()
|
||
|
rt_w2if.SetInput(renWin)
|
||
|
|
||
|
if os.path.isfile(fname):
|
||
|
pass
|
||
|
else:
|
||
|
rt_pngw = vtk.vtkPNGWriter()
|
||
|
rt_pngw.SetFileName(fname)
|
||
|
rt_pngw.SetInput(rt_w2if.GetOutput())
|
||
|
rt_pngw.Write()
|
||
|
rt_pngw = None
|
||
|
|
||
|
rt_png = vtk.vtkPNGReader()
|
||
|
rt_png.SetFileName(fname)
|
||
|
|
||
|
rt_id = vtk.vtkImageDifference()
|
||
|
rt_id.SetInput(rt_w2if.GetOutput())
|
||
|
rt_id.SetImage(rt_png.GetOutput())
|
||
|
rt_id.Update()
|
||
|
|
||
|
if rt_id.GetThresholdedError() <= 10:
|
||
|
return 1
|
||
|
else:
|
||
|
sys.stderr.write('Failed image test: %f\n'
|
||
|
% rt_id.GetThresholdedError())
|
||
|
return 0
|
||
|
return 2
|
||
|
|