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):
self.vtkWidget.setnumViewports(1)
self.AmpObj.addFE([FEname[0],])
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.vtkWidget.renderActors(self.AmpObj.actors, ['FE',])
self.vtkWidget.setScalarBar(self.AmpObj.actors['FE'])
......
......@@ -37,7 +37,8 @@ class ampVTK(object):
self.cams.append(vtk.vtkCamera())
self.setView()
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.axes.append(vtk.vtkCubeAxesActor())
......@@ -235,7 +236,7 @@ class visMixin(object):
# win.getScreenshot('test.tiff')
# 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
the AmpObject
......@@ -244,7 +245,7 @@ class visMixin(object):
if isinstance(stype, int):
stype = self.stype[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):
"""
......@@ -255,15 +256,17 @@ class visMixin(object):
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.points = vtk.vtkPoints()
self.polys = vtk.vtkCellArray()
self.setVert(data['vert'])
self.setFaces(data['faces'])
self.setNorm()
if CMap is not None:
self.setRect(data['values'])
self.setCMap(CMap)
self.setCMap(CMap, bands)
self.GetProperty().SetInterpolationToGouraud()
self.Mapper = vtk.vtkPolyDataMapper()
self.Mapper.SetInputData(self.mesh)
if CMap is not None:
......@@ -271,6 +274,7 @@ class visMixin(object):
self.Mapper.SetLookupTable(self.lut)
self.SetMapper(self.Mapper)
def setVert(self, vert):
self.points.SetData(numpy_support.numpy_to_vtk(vert, deep=1))
self.mesh.SetPoints(self.points)
......@@ -281,6 +285,13 @@ class visMixin(object):
numpy_support.numpy_to_vtkIdTypeArray(f, deep=1))
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):
self.scalars = numpy_support.numpy_to_vtk(rect, deep=1)
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