git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 11/15/2003 - Jeff Grimmett (grimmtooth@softhome.net)
 | |
| #
 | |
| # o Updated for wx namespace
 | |
| # o No idea what this does.
 | |
| #
 | |
| 
 | |
| import  wx
 | |
| import  wx.lib.vtk  as vtk
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| class VtkFrame(wx.Frame):
 | |
|     """
 | |
|         Simple example VTK window that contains a cone.
 | |
|     """
 | |
|     def __init__(self, parent, id, title):
 | |
|         wx.Frame.__init__(self, parent, id, title, size=(450, 300))
 | |
|         win = vtk.VTKRenderWindow(self, -1)
 | |
| 
 | |
|         renWin = win.GetRenderWindow()
 | |
| 
 | |
|         ren = vtk.vtkRenderer()
 | |
|         renWin.AddRenderer(ren)
 | |
|         cone = vtk.vtkConeSource()
 | |
|         coneMapper = vtk.vtkPolyDataMapper()
 | |
|         coneMapper.SetInput(cone.GetOutput())
 | |
|         coneActor = vtk.vtkActor()
 | |
|         coneActor.SetMapper(coneMapper)
 | |
|         ren.AddActor(coneActor)
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| # Using new event binder
 | |
| wx_EVT_ADD_CONE = wx.NewEventType()
 | |
| EVT_ADD_CONE = wx.PyEventBinder(wx_EVT_ADD_CONE, 1)
 | |
| 
 | |
| class AddCone(wx.PyEvent):
 | |
|     def __init__(self):
 | |
|         wx.PyEvent.__init__(self)
 | |
|         self.SetEventType(wx_EVT_ADD_CONE)
 | |
| 
 | |
| 
 | |
| class HiddenCatcher(wx.Frame):
 | |
|     """
 | |
|         The "catcher" frame in the second thread.
 | |
|         It is invisible.  It's only job is to receive
 | |
|         Events from the main thread, and create
 | |
|         the appropriate windows.
 | |
|     """
 | |
|     def __init__(self):
 | |
|         wx.Frame.__init__(self, None, -1, '')
 | |
|         self.Bind(EVT_ADD_CONE, self.AddCone)
 | |
| 
 | |
|     def AddCone(self,evt):
 | |
|         add_cone()
 | |
| 
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| 
 | |
| class SecondThreadApp(wx.App):
 | |
|     """
 | |
|         wxApp that lives in the second thread.
 | |
|     """
 | |
|     def OnInit(self):
 | |
|         catcher = HiddenCatcher()
 | |
|         #self.SetTopWindow(catcher)
 | |
|         self.catcher = catcher
 | |
|         return True
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| 
 | |
| def add_cone():
 | |
|    frame = VtkFrame(None, -1, "Cone")
 | |
|    frame.Show(True)
 | |
| 
 |