def TestvtkBioEngInterface(): src0 = vtk.vtkSphereSource() src0.SetRadius(1) src0.SetThetaResolution(12) src0.SetPhiResolution(12) src0.Update() s0 = src0.GetOutput() src1 = vtk.vtkSphereSource() src1.SetRadius(0.5) src1.SetThetaResolution(12) src1.SetPhiResolution(12) src1.Update() s1 = src1.GetOutput() col0 = vtkesqui.vtkCollisionModel() col0.SetName("col0") col0.SetInput(s0) col0.SetObjectId(0) col0.SetId(0) col0.Update() col0.GetActor().SetPosition(0,0,0) col1 = vtkesqui.vtkCollisionModel() col1.SetName("col1") col1.SetInput(s1) col1.SetObjectId(0) col1.SetId(0) col1.Update() col1.GetActor().SetPosition(3,0,0) renderer = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.SetSize(500,500) renWin.AddRenderer(renderer) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) renderer.AddActor(col0.GetActor()) renderer.AddActor(col1.GetActor()) col = vtkesqui.vtkBioEngInterface() col.SetBoxTolerance(0) col.SetCellTolerance(0) col.SetNumberOfCellsPerNode(2) col.SetModeToFull() col.Initialize() col.AddModel(col0) col.AddModel(col1) col.Update() renderer.SetBackground(0.3, 0.6, 0.3) renderer.ResetCamera() iren.Initialize() iren.CreateRepeatingTimer(500) print "here" cb = TimerCallback1() # Segmention fault here iren.AddObserver("TimerEvent", cb) cb.SetModel(0, col0) cb.SetModel(1, col1) cb.SetFilter(col) tid = iren.CreateRepeatingTimer(500) cb.SetTimerId(tid) renWin.Render() iren.Start()
col1.SetColor(0.0, 1.0, 1.0) col1.Update() reader2 = vtk.vtkXMLPolyDataReader() reader2.SetFileName(fn2) reader2.Update() col2 = vtkesqui.vtkCollisionModel() col2.SetName("ball_col") col2.SetInput(reader2.GetOutput()) col2.SetObjectId(2) col2.SetOpacity(1.0) col2.SetColor(1.0, 1.0, 0.0) col2.Update() detection = vtkesqui.vtkBioEngInterface() detection.AddModel(col0) detection.AddModel(col1) detection.AddModel(col2) detection.Initialize() detection.Update() ren = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) renWin.SetWindowName("vtkESQui - Collision Detection") iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) ren.AddActor(col0.GetActor()) ren.AddActor(col1.GetActor())