Example #1
0
def renderMultiblockData(ren, vtkmdata):
    mapper = vtk.vtkCompositePolyDataMapper()
    mapper.SetInputDataObject(vtkmdata)

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    ren.AddActor(actor)
    return actor
Example #2
0
 def addToScene(self, msource, **kwargs):
   import vtk
   vsource = msource
   if 'translate' in kwargs:
       tf = vtk.vtkTransformFilter()
       tf.SetTransform(vtk.vtkTransform())
       delta = kwargs['translate']
       tf.GetTransform().Translate(delta[0], delta[1], delta[2])
       tf.SetInputConnection(msource.GetOutputPort())
       vsource = tf
   ac = vtk.vtkActor()
   mp = vtk.vtkCompositePolyDataMapper()
   ac.SetMapper(mp)
   mp.SetInputConnection(vsource.GetOutputPort())
   self.renderer.AddActor(ac)
Example #3
0
 def addToScene(self, msource, **kwargs):
     import vtk
     vsource = msource
     if 'translate' in kwargs:
         tf = vtk.vtkTransformFilter()
         tf.SetTransform(vtk.vtkTransform())
         delta = kwargs['translate']
         tf.GetTransform().Translate(delta[0], delta[1], delta[2])
         tf.SetInputConnection(msource.GetOutputPort())
         vsource = tf
     ac = vtk.vtkActor()
     mp = vtk.vtkCompositePolyDataMapper()
     ac.SetMapper(mp)
     mp.SetInputConnection(vsource.GetOutputPort())
     self.renderer.AddActor(ac)
     return [msource, vsource, mp, ac]
Example #4
0
extract = vtk.vtkExtractGeometry()
extract.SetImplicitFunction(extractionSphere)
extract.SetInputConnection(random.GetOutputPort())
extract.Update()

# The cut plane
plane = vtk.vtkPlane()
plane.SetOrigin(0, 0, 0)
plane.SetNormal(1, 1, 1)

# Now create the usual cutter - without a tree
cutter = vtk.vtkCutter()
cutter.SetInputConnection(extract.GetOutputPort())
cutter.SetCutFunction(plane)

cutterMapper = vtk.vtkCompositePolyDataMapper()
cutterMapper.SetInputConnection(cutter.GetOutputPort())

cutterActor = vtk.vtkActor()
cutterActor.SetMapper(cutterMapper)
cutterActor.GetProperty().SetColor(1, 1, 1)

# Throw in an outline
outline = vtk.vtkOutlineFilter()
outline.SetInputConnection(sample.GetOutputPort())

outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())

outlineActor = vtk.vtkActor()
outlineActor.SetMapper(outlineMapper)
Example #5
0
# Now create the threaded version. Note that as of the
# writing of this test, vtkSMPContourGrid does not merge
# pieces properly hence MergePieces is disabled. Also
# vtkSMPContourGrid only outputs triangles.
cfT = vtk.vtkSMPContourGrid()
cfT.SetInputData(input)
cfT.UseScalarTreeOn()
cfT.SetValue(0, 350)
cfT.SetInputArrayToProcess(0, 0, 0, 0, "Temp")
cfT.GenerateTrianglesOff()
cfT.MergePiecesOff()

# Note: Since MergePieces is off, we have to use a
# vtkCompositePolyDataMapper.
contourMapperT = vtk.vtkCompositePolyDataMapper()
contourMapperT.SetInputConnection(cfT.GetOutputPort())
contourMapperT.ScalarVisibilityOff()

contourActorT = vtk.vtkActor()
contourActorT.SetMapper(contourMapperT)
contourActorT.GetProperty().SetColor(1, 1, 1)

outlineT = vtk.vtkOutlineFilter()
outlineT.SetInputData(input)

outlineMapperT = vtk.vtkPolyDataMapper()
outlineMapperT.SetInputConnection(outlineT.GetOutputPort())

outlineActorT = vtk.vtkActor()
outlineActorT.SetMapper(outlineMapperT)
Example #6
0
# Set up the render window and the interactor.
renWin = vtk.vtkRenderWindow()
renWin.SetSize(600, 400)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

mappers = list()
actors = list()
renderers = list()

polyMapper = vtk.vtkPolyDataMapper()
polyMapper.SetInputConnection(transformer.GetOutputPort())
mappers.append(polyMapper)

mbdMapper = vtk.vtkCompositePolyDataMapper()
mbdMapper.SetInputConnection(source.GetOutputPort())
mappers.append(mbdMapper)

mbdMapper2 = vtk.vtkCompositePolyDataMapper2()
mbdMapper2.SetInputConnection(source.GetOutputPort())
mappers.append(mbdMapper2)

x = 0
dx = float(1) / len(mappers)

# Define the property: lighting intensities, color,
# edge visibility, point visibilty
p1 = vtk.vtkProperty()
p1.SetColor(1, 0, 0)
p1.LightingOff()
# Throw in an outline
outline = vtk.vtkOutlineFilter()
outline.SetInputData(input)

outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())

outlineActor = vtk.vtkActor()
outlineActor.SetMapper(outlineMapper)

# Now create the accelerated version.
sCutter = vtk.vtkPlaneCutter()
sCutter.SetInputData(input)
sCutter.SetPlane(plane)

sCutterMapper = vtk.vtkCompositePolyDataMapper()
sCutterMapper.SetInputConnection(sCutter.GetOutputPort())
sCutterMapper.ScalarVisibilityOff()

sCutterActor = vtk.vtkActor()
sCutterActor.SetMapper(sCutterMapper)
sCutterActor.GetProperty().SetColor(1, 1, 1)

# Accelerated cutter without tree
snCutter = vtk.vtkPlaneCutter()
snCutter.SetInputData(input)
snCutter.SetPlane(plane)
snCutter.BuildTreeOff()

snCutterMapper = vtk.vtkCompositePolyDataMapper()
snCutterMapper.SetInputConnection(snCutter.GetOutputPort())
stree.ComputeResolutionOn()
stree.SetScalarRange(0.25,0.75)
stree.SetComputeScalarRange(computeScalarRange)

# Now contour the cells, using scalar tree
contour = vtk.vtkContour3DLinearGrid()
contour.SetInputData(composite)
contour.SetValue(0, 0.5)
contour.SetMergePoints(mergePoints)
contour.SetSequentialProcessing(serialProcessing)
contour.SetInterpolateAttributes(interpolateAttr);
contour.SetComputeNormals(computeNormals);
contour.UseScalarTreeOn()
contour.SetScalarTree(stree)

contMapper = vtk.vtkCompositePolyDataMapper()
contMapper.SetInputConnection(contour.GetOutputPort())
contMapper.ScalarVisibilityOff()

contActor = vtk.vtkActor()
contActor.SetMapper(contMapper)
contActor.GetProperty().SetColor(.8,.4,.4)

# Now contour the cells, using scalar tree
outlineF = vtk.vtkOutlineFilter()
outlineF.SetInputData(composite)

outlineM = vtk.vtkPolyDataMapper()
outlineM.SetInputConnection(outlineF.GetOutputPort())

outline = vtk.vtkActor()
# Now create the threaded version. Note that as of the
# writing of this test, vtkSMPContourGrid does not merge
# pieces properly hence MergePieces is disabled. Also
# vtkSMPContourGrid only outputs triangles.
cfT = vtk.vtkSMPContourGrid()
cfT.SetInputData(input)
cfT.UseScalarTreeOn()
cfT.SetValue(0,350)
cfT.SetInputArrayToProcess(0, 0, 0, 0, "Temp");
cfT.GenerateTrianglesOff()
cfT.MergePiecesOff()

# Note: Since MergePieces is off, we have to use a
# vtkCompositePolyDataMapper.
contourMapperT = vtk.vtkCompositePolyDataMapper()
contourMapperT.SetInputConnection(cfT.GetOutputPort())
contourMapperT.ScalarVisibilityOff()

contourActorT = vtk.vtkActor()
contourActorT.SetMapper(contourMapperT)
contourActorT.GetProperty().SetColor(1,1,1)

outlineT = vtk.vtkOutlineFilter()
outlineT.SetInputData(input)

outlineMapperT = vtk.vtkPolyDataMapper()
outlineMapperT.SetInputConnection(outlineT.GetOutputPort())

outlineActorT = vtk.vtkActor()
outlineActorT.SetMapper(outlineMapperT)
errors = 0
for i in range(0, 6):
    if pdBounds[i] != bounds[i]:
        errors += 1
        break

# An empty polydata
empty = vtk.vtkPolyData()

# A composite data set with an empty block following a non-empty block
mbd = vtk.vtkMultiBlockDataSet()
mbd.SetBlock(0, pd)
mbd.SetBlock(1, empty)

# The composite polydata mapper maps the composite dataset
cpdm = vtk.vtkCompositePolyDataMapper()
cpdm.SetInputDataObject(mbd)

# Calculate the bounds
cpdmBounds = cpdm.GetBounds()

ok = True
for i in range(0, 6):
    if cpdmBounds[i] != bounds[i]:
        ok = False
        errors += 1
        break

if not ok:
    print("Empty block following non-empty block")
    print("expected bounds = {}".format(bounds))
errors = 0
for i in range(0,6):
  if pdBounds[i] != bounds[i]:
    errors +=1
    break

# An empty polydata
empty=vtk.vtkPolyData()

# A composite data set with an empty block following a non-empty block
mbd=vtk.vtkMultiBlockDataSet()
mbd.SetBlock(0,pd)
mbd.SetBlock(1,empty)

# The composite polydata mapper maps the composite dataset
cpdm=vtk.vtkCompositePolyDataMapper()
cpdm.SetInputDataObject(mbd)

# Calculate the bounds
cpdmBounds = cpdm.GetBounds()

ok=True
for i in range(0,6):
  if cpdmBounds[i] != bounds[i]:
    ok=False
    errors+=1
    break

if not ok:
  print( "Empty block following non-empty block" )
  print ( "expected bounds = {}".format(bounds) )