Skip to content
Snippets Groups Projects
Commit f41f1fab authored by Joshua Steer's avatar Joshua Steer
Browse files

Updated visualisation tools with Gouraud shading, point normals and new contour colours

parent 8ca808aa
No related branches found
No related tags found
No related merge requests found
...@@ -89,7 +89,7 @@ class AmpScanGUI(QMainWindow): ...@@ -89,7 +89,7 @@ class AmpScanGUI(QMainWindow):
self.vtkWidget.setnumViewports(1) self.vtkWidget.setnumViewports(1)
self.AmpObj.addFE([FEname[0],]) self.AmpObj.addFE([FEname[0],])
self.AmpObj.lp_smooth('FE', n=1) self.AmpObj.lp_smooth('FE', n=1)
self.AmpObj.addActor(stype='FE', CMap=self.AmpObj.CMap02P) self.AmpObj.addActor(stype='FE', CMap=self.AmpObj.CMap02P, bands=5)
self.AmpObj.actors['FE'].setScalarRange(smin=0.0, smax=50) self.AmpObj.actors['FE'].setScalarRange(smin=0.0, smax=50)
self.vtkWidget.renderActors(self.AmpObj.actors, ['FE',]) self.vtkWidget.renderActors(self.AmpObj.actors, ['FE',])
self.vtkWidget.setScalarBar(self.AmpObj.actors['FE']) self.vtkWidget.setScalarBar(self.AmpObj.actors['FE'])
......
...@@ -37,7 +37,8 @@ class ampVTK(object): ...@@ -37,7 +37,8 @@ class ampVTK(object):
self.cams.append(vtk.vtkCamera()) self.cams.append(vtk.vtkCamera())
self.setView() self.setView()
self.rens.append(vtkRender()) self.rens.append(vtkRender())
self.rens[0].SetBackground(0.1, 0.2, 0.4) #self.rens[0].SetBackground(0.1, 0.2, 0.4)
self.rens[0].SetBackground(1.0,1.0,1.0)
self.rens[0].SetActiveCamera(self.cams[0]) self.rens[0].SetActiveCamera(self.cams[0])
self.axes.append(vtk.vtkCubeAxesActor()) self.axes.append(vtk.vtkCubeAxesActor())
...@@ -235,7 +236,7 @@ class visMixin(object): ...@@ -235,7 +236,7 @@ class visMixin(object):
# win.getScreenshot('test.tiff') # win.getScreenshot('test.tiff')
# return win.im # return win.im
def addActor(self, stype=0, CMap=None): def addActor(self, stype=0, CMap=None, bands=128):
""" """
Function to insert a vtk actor into the actors dictionary within Function to insert a vtk actor into the actors dictionary within
the AmpObject the AmpObject
...@@ -244,7 +245,7 @@ class visMixin(object): ...@@ -244,7 +245,7 @@ class visMixin(object):
if isinstance(stype, int): if isinstance(stype, int):
stype = self.stype[stype] stype = self.stype[stype]
data = getattr(self, stype) data = getattr(self, stype)
self.actors[stype] = self.ampActor(data, CMap=CMap) self.actors[stype] = self.ampActor(data, CMap=CMap, bands=bands)
class ampActor(vtk.vtkActor): class ampActor(vtk.vtkActor):
""" """
...@@ -255,15 +256,17 @@ class visMixin(object): ...@@ -255,15 +256,17 @@ class visMixin(object):
Add functions to add vert, add faces, cmap and make LUT Add functions to add vert, add faces, cmap and make LUT
""" """
def __init__(self, data, CMap=None, bands=None): def __init__(self, data, CMap=None, bands=128):
self.mesh = vtk.vtkPolyData() self.mesh = vtk.vtkPolyData()
self.points = vtk.vtkPoints() self.points = vtk.vtkPoints()
self.polys = vtk.vtkCellArray() self.polys = vtk.vtkCellArray()
self.setVert(data['vert']) self.setVert(data['vert'])
self.setFaces(data['faces']) self.setFaces(data['faces'])
self.setNorm()
if CMap is not None: if CMap is not None:
self.setRect(data['values']) self.setRect(data['values'])
self.setCMap(CMap) self.setCMap(CMap, bands)
self.GetProperty().SetInterpolationToGouraud()
self.Mapper = vtk.vtkPolyDataMapper() self.Mapper = vtk.vtkPolyDataMapper()
self.Mapper.SetInputData(self.mesh) self.Mapper.SetInputData(self.mesh)
if CMap is not None: if CMap is not None:
...@@ -271,6 +274,7 @@ class visMixin(object): ...@@ -271,6 +274,7 @@ class visMixin(object):
self.Mapper.SetLookupTable(self.lut) self.Mapper.SetLookupTable(self.lut)
self.SetMapper(self.Mapper) self.SetMapper(self.Mapper)
def setVert(self, vert): def setVert(self, vert):
self.points.SetData(numpy_support.numpy_to_vtk(vert, deep=1)) self.points.SetData(numpy_support.numpy_to_vtk(vert, deep=1))
self.mesh.SetPoints(self.points) self.mesh.SetPoints(self.points)
...@@ -281,6 +285,13 @@ class visMixin(object): ...@@ -281,6 +285,13 @@ class visMixin(object):
numpy_support.numpy_to_vtkIdTypeArray(f, deep=1)) numpy_support.numpy_to_vtkIdTypeArray(f, deep=1))
self.mesh.SetPolys(self.polys) self.mesh.SetPolys(self.polys)
def setNorm(self, split=False):
self.norm = vtk.vtkPolyDataNormals()
self.norm.SetInputData(self.mesh)
self.norm.SetFeatureAngle(30.0)
self.norm.Update()
self.mesh.DeepCopy(self.norm.GetOutput())
def setRect(self, rect): def setRect(self, rect):
self.scalars = numpy_support.numpy_to_vtk(rect, deep=1) self.scalars = numpy_support.numpy_to_vtk(rect, deep=1)
self.mesh.GetPointData().SetScalars(self.scalars) self.mesh.GetPointData().SetScalars(self.scalars)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment