def __init__( self, inputobj=None, c=('r', 'y', 'lg', 'lb', 'b'), #('b','lb','lg','y','r') alpha=(0.5, 1), alphaUnit=1, mapper='tetra', ): BaseGrid.__init__(self) self.useArray = 0 inputtype = str(type(inputobj)) #printc('TetMesh inputtype', inputtype) ################### if inputobj is None: self._data = vtk.vtkUnstructuredGrid() elif isinstance(inputobj, vtk.vtkUnstructuredGrid): self._data = inputobj elif isinstance(inputobj, vtk.vtkRectilinearGrid): r2t = vtk.vtkRectilinearGridToTetrahedra() r2t.SetInputData(inputobj) r2t.RememberVoxelIdOn() r2t.SetTetraPerCellTo6() r2t.Update() self._data = r2t.GetOutput() elif isinstance(inputobj, vtk.vtkDataSet): r2t = vtk.vtkDataSetTriangleFilter() r2t.SetInputData(inputobj) #r2t.TetrahedraOnlyOn() r2t.Update() self._data = r2t.GetOutput() elif isinstance(inputobj, str): from vedo.io import download, loadUnStructuredGrid if "https://" in inputobj: inputobj = download(inputobj, verbose=False) ug = loadUnStructuredGrid(inputobj) tt = vtk.vtkDataSetTriangleFilter() tt.SetInputData(ug) tt.SetTetrahedraOnly(True) tt.Update() self._data = tt.GetOutput() elif utils.isSequence(inputobj): # if "ndarray" not in inputtype: # inputobj = np.array(inputobj) self._data = self._buildtetugrid(inputobj[0], inputobj[1]) ################### if 'tetra' in mapper: self._mapper = vtk.vtkProjectedTetrahedraMapper() elif 'ray' in mapper: self._mapper = vtk.vtkUnstructuredGridVolumeRayCastMapper() elif 'zs' in mapper: self._mapper = vtk.vtkUnstructuredGridVolumeZSweepMapper() elif isinstance(mapper, vtk.vtkMapper): self._mapper = mapper else: printc('Unknown mapper type', [mapper], c='r') raise RuntimeError() self._mapper.SetInputData(self._data) self.SetMapper(self._mapper) self.color(c).alpha(alpha) if alphaUnit: self.GetProperty().SetScalarOpacityUnitDistance(alphaUnit) # remember stuff: self._color = c self._alpha = alpha self._alphaUnit = alphaUnit
from paraview.simple import * from paraview import smtesting import vtk import vtk.vtkRenderingVolume import os paraview.simple._DisableFirstRenderCameraReset() # need a baseline? saveImage = False # check for driver support first rw = vtk.vtkRenderWindow() rw.SetSize(1,1) rw.Render() ptm = vtk.vtkProjectedTetrahedraMapper() ok = ptm.IsSupported(rw) print print ('ProjectedTetrahedraMapper %s supported '%( 'is' if(ok) else 'is not')) del ptm del rw if ok: smtesting.ProcessCommandLineArguments() smtesting.LoadServerManagerState(smtesting.StateXMLFileName) view = GetRenderView() view.RemoteRenderThreshold = 0; if saveImage:
def __init__( self, inputobj=None, c=('b', 'lb', 'lg', 'y', 'r'), alpha=(0.0, 0.0, 0.2, 0.4, 0.8, 1), alphaGradient=None, mode=0, origin=None, spacing=None, shape=None, mapperType='smart', ): vtk.vtkVolume.__init__(self) ActorBase.__init__(self) inputtype = str(type(inputobj)) #colors.printc('Volume inputtype', inputtype) if isinstance(inputobj, str): import glob inputobj = sorted(glob.glob(inputobj)) if inputobj is None: img = vtk.vtkImageData() elif utils.isSequence(inputobj): if isinstance(inputobj[0], str): # scan sequence of BMP files ima = vtk.vtkImageAppend() ima.SetAppendAxis(2) pb = utils.ProgressBar(0, len(inputobj)) for i in pb.range(): f = inputobj[i] picr = vtk.vtkBMPReader() picr.SetFileName(f) picr.Update() mgf = vtk.vtkImageMagnitude() mgf.SetInputData(picr.GetOutput()) mgf.Update() ima.AddInputData(mgf.GetOutput()) pb.print('loading..') ima.Update() img = ima.GetOutput() else: if "ndarray" not in inputtype: inputobj = np.array(inputobj) varr = numpy_to_vtk(inputobj.ravel(order='F'), deep=True, array_type=vtk.VTK_FLOAT) varr.SetName('input_scalars') img = vtk.vtkImageData() if shape is not None: img.SetDimensions(shape) else: img.SetDimensions(inputobj.shape) img.GetPointData().SetScalars(varr) #to convert rgb to numpy # img_scalar = data.GetPointData().GetScalars() # dims = data.GetDimensions() # n_comp = img_scalar.GetNumberOfComponents() # temp = numpy_support.vtk_to_numpy(img_scalar) # numpy_data = temp.reshape(dims[1],dims[0],n_comp) # numpy_data = numpy_data.transpose(0,1,2) # numpy_data = np.flipud(numpy_data) elif "ImageData" in inputtype: img = inputobj elif "UniformGrid" in inputtype: img = inputobj elif "UnstructuredGrid" in inputtype: img = inputobj mapperType = 'tetra' elif hasattr( inputobj, "GetOutput"): # passing vtk object, try extract imagdedata if hasattr(inputobj, "Update"): inputobj.Update() img = inputobj.GetOutput() else: colors.printc("Volume(): cannot understand input type:\n", inputtype, c=1) return if 'gpu' in mapperType: self._mapper = vtk.vtkGPUVolumeRayCastMapper() elif 'opengl_gpu' in mapperType: self._mapper = vtk.vtkOpenGLGPUVolumeRayCastMapper() elif 'smart' in mapperType: self._mapper = vtk.vtkSmartVolumeMapper() elif 'fixed' in mapperType: self._mapper = vtk.vtkFixedPointVolumeRayCastMapper() elif 'tetra' in mapperType: self._mapper = vtk.vtkProjectedTetrahedraMapper() elif 'unstr' in mapperType: self._mapper = vtk.vtkUnstructuredGridVolumeRayCastMapper() else: print("Error unknown mapperType", mapperType) raise RuntimeError() if origin is not None: img.SetOrigin(origin) if spacing is not None: img.SetSpacing(spacing) if shape is not None: img.SetDimensions(shape) self._imagedata = img self._mapper.SetInputData(img) self.SetMapper(self._mapper) self.mode(mode).color(c).alpha(alpha).alphaGradient(alphaGradient) self.GetProperty().SetInterpolationType(1) # remember stuff: self._mode = mode self._color = c self._alpha = alpha self._alphaGrad = alphaGradient
from paraview.simple import * from paraview import smtesting import vtk import vtk.vtkRenderingVolume import os paraview.simple._DisableFirstRenderCameraReset() # need a baseline? saveImage = False # check for driver support first rw = vtk.vtkRenderWindow() rw.SetSize(1, 1) rw.Render() ptm = vtk.vtkProjectedTetrahedraMapper() ok = ptm.IsSupported(rw) print print 'ProjectedTetrahedraMapper %s supported ' % ('is' if (ok) else 'is not') del ptm del rw if ok: smtesting.ProcessCommandLineArguments() smtesting.LoadServerManagerState(smtesting.StateXMLFileName) view = GetRenderView() view.RemoteRenderThreshold = 0 if saveImage: SetActiveView(view)
def __init__( self, inputobj, c=('b', 'lb', 'lg', 'y', 'r'), alpha=(0.0, 0.0, 0.2, 0.4, 0.8, 1), alphaGradient=None, mode=0, origin=None, spacing=None, shape=None, mapperType='gpu', ): vtk.vtkVolume.__init__(self) ActorBase.__init__(self) inputtype = str(type(inputobj)) #colors.printc('Volume inputtype', inputtype) if inputobj is None: img = vtk.vtkImageData() elif utils.isSequence(inputobj): if "ndarray" not in inputtype: inputobj = np.array(inputobj) varr = numpy_to_vtk(inputobj.ravel(order='F'), deep=True, array_type=vtk.VTK_FLOAT) varr.SetName('input_scalars') img = vtk.vtkImageData() if shape is not None: img.SetDimensions(shape) else: img.SetDimensions(inputobj.shape) img.GetPointData().SetScalars(varr) #to convert rgb to numpy # img_scalar = data.GetPointData().GetScalars() # dims = data.GetDimensions() # n_comp = img_scalar.GetNumberOfComponents() # temp = numpy_support.vtk_to_numpy(img_scalar) # numpy_data = temp.reshape(dims[1],dims[0],n_comp) # numpy_data = numpy_data.transpose(0,1,2) # numpy_data = np.flipud(numpy_data) elif "ImageData" in inputtype: img = inputobj elif "UniformGrid" in inputtype: img = inputobj elif "UnstructuredGrid" in inputtype: img = inputobj mapperType = 'tetra' elif hasattr( inputobj, "GetOutput"): # passing vtk object, try extract imagdedata if hasattr(inputobj, "Update"): inputobj.Update() img = inputobj.GetOutput() else: colors.printc("Volume(): cannot understand input type:\n", inputtype, c=1) return if 'gpu' in mapperType: self._mapper = vtk.vtkGPUVolumeRayCastMapper() elif 'opengl_gpu' in mapperType: self._mapper = vtk.vtkOpenGLGPUVolumeRayCastMapper() elif 'smart' in mapperType: self._mapper = vtk.vtkSmartVolumeMapper() elif 'fixed' in mapperType: self._mapper = vtk.vtkFixedPointVolumeRayCastMapper() elif 'tetra' in mapperType: self._mapper = vtk.vtkProjectedTetrahedraMapper() elif 'unstr' in mapperType: self._mapper = vtk.vtkUnstructuredGridVolumeRayCastMapper() if origin is not None: img.SetOrigin(origin) if spacing is not None: img.SetSpacing(spacing) if shape is not None: img.SetDimensions(shape) self._imagedata = img self._mapper.SetInputData(img) self.SetMapper(self._mapper) self.mode(mode).color(c).alpha(alpha).alphaGradient(alphaGradient) # remember stuff: self._mode = mode self._color = c self._alpha = alpha self._alphaGrad = alphaGradient
def __init__( self, inputobj=None, c=('r', 'y', 'lg', 'lb', 'b'), #('b','lb','lg','y','r') alpha=(0.5, 1), alphaUnit=1, mapper='tetra', ): vtk.vtkVolume.__init__(self) ActorBase.__init__(self) self._ugrid = None self.useCells = True self.useArray = 0 inputtype = str(type(inputobj)) #printc('TetMesh inputtype', inputtype) ################### if inputobj is None: self._ugrid = vtk.vtkUnstructuredGrid() elif isinstance(inputobj, vtk.vtkUnstructuredGrid): self._ugrid = inputobj elif isinstance(inputobj, vtk.vtkRectilinearGrid): r2t = vtk.vtkRectilinearGridToTetrahedra() r2t.SetInputData(inputobj) r2t.RememberVoxelIdOn() r2t.SetTetraPerCellTo6() r2t.Update() self._ugrid = r2t.GetOutput() elif isinstance(inputobj, vtk.vtkDataSet): r2t = vtk.vtkDataSetTriangleFilter() r2t.SetInputData(inputobj) #r2t.TetrahedraOnlyOn() r2t.Update() self._ugrid = r2t.GetOutput() elif isinstance(inputobj, str): from vtkplotter.vtkio import loadUnStructuredGrid self._ugrid = loadUnStructuredGrid(inputobj) elif utils.isSequence(inputobj): if "ndarray" not in inputtype: inputobj = np.array(inputobj) self._ugrid = self._buildugrid(inputobj[0], inputobj[1]) ################### if 'tetra' in mapper: self._mapper = vtk.vtkProjectedTetrahedraMapper() elif 'ray' in mapper: self._mapper = vtk.vtkUnstructuredGridVolumeRayCastMapper() elif 'zs' in mapper: self._mapper = vtk.vtkUnstructuredGridVolumeZSweepMapper() elif isinstance(mapper, vtk.vtkMapper): self._mapper = mapper else: printc('Unknown mapper type', [mapper], c=1) return self._mapper.SetInputData(self._ugrid) self.SetMapper(self._mapper) self.color(c).alpha(alpha) if alphaUnit: self.GetProperty().SetScalarOpacityUnitDistance(alphaUnit) # remember stuff: self._color = c self._alpha = alpha self._alphaUnit = alphaUnit