Cloned library of VTK-5.0.0 with extra build files for internal package management.
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.

86 lines
2.1 KiB

2 years ago
from vtk import *
import sys
import os
import time
myProcId = 0
numProcs = 1
compManager = vtkCompositeManager()
if compManager.GetController():
myProcId = compManager.GetController().GetLocalProcessId()
numProcs = compManager.GetController().GetNumberOfProcesses()
try:
v = vtkMesaRenderer()
if myProcId > 0:
_graphics_fact=vtkGraphicsFactory()
_graphics_fact.SetUseMesaClasses(1)
del _graphics_fact
del v
except Exception, (bar):
print "No mesa", bar
#print "I am process: %d / %d" % (myProcId, numProcs)
# create a rendering window and renderer
ren = vtkRenderer()
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetSize(300,300)
if myProcId:
renWin.OffScreenRenderingOn()
# create an actor and give it cone geometry
cone = vtkConeSource()
cone.SetResolution(8)
coneMapper = vtkPolyDataMapper()
coneMapper.SetInputConnection(cone.GetOutputPort())
coneActor = vtkActor()
coneActor.SetMapper(coneMapper)
# assign our actor to the renderer
ren.AddActor(coneActor)
renWin.SetWindowName("I am node %d" % myProcId)
if numProcs > 1:
compManager.SetRenderWindow(renWin)
compManager.InitializePieces()
#print "Pid of process %d is %d" % (myProcId, os.getpid())
def ExitMaster(a, b):
#print "ExitMaster; I am %d / %d" % ( myProcId, numProcs )
if numProcs > 1 and myProcId == 0:
#print "Trigger exit RMI on all satellite nodes"
for a in range(1, numProcs):
#print "Trigger exit in satellite node %d" % a
compManager.GetController().TriggerRMI(a, 239954)
if myProcId == 0:
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.AddObserver("ExitEvent", ExitMaster)
iren.Start()
#renWin.Render()
#renWin.Render()
#renWin.Render()
else:
compManager.InitializeRMIs()
compManager.GetController().ProcessRMIs()
compManager.GetController().Finalize()
#print "**********************************"
#print "Done on the slave node"
#print "**********************************"
sys.exit()
ExitMaster(0, 0)
#time.sleep(5)