X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/utils/wxPython/lib/vtk.py?ds=sidebyside diff --git a/utils/wxPython/lib/vtk.py b/utils/wxPython/lib/vtk.py deleted file mode 100644 index eab82b5dc0..0000000000 --- a/utils/wxPython/lib/vtk.py +++ /dev/null @@ -1,128 +0,0 @@ -#---------------------------------------------------------------------- -# Name: wxPython.lib.vtk -# Purpose: Provides a wrapper around the vtkRenderWindow from the -# VTK Visualization Toolkit. Requires the VTK Python -# extensions from http://www.kitware.com/ -# -# Author: Robin Dunn -# -# Created: 16-Nov-1999 -# RCS-ID: $Id$ -# Copyright: (c) 1999 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------- - - -try: # For Win32, - from vtkpython import * -except ImportError: - try: # for Unix. Why they do it this way is anybody's guess... - from libVTKCommonPython import * - from libVTKGraphicsPython import * - from libVTKImagingPython import * - except ImportError: - raise ImportError, "VTK extension module not found" - -from wxPython.wx import * -import math - -#---------------------------------------------------------------------- - -class wxVTKRenderWindow(wxScrolledWindow): - def __init__(self, parent, id, position=wxDefaultPosition, - size=wxDefaultSize, style=0): - wxScrolledWindow.__init__(self, parent, id, position, size, style) - - self.renderWindow = vtkRenderWindow() - - if wxPlatform != '__WXMSW__': - # We can't get the handle in wxGTK until after the widget - # is created, the window create event happens later so we'll - # catch it there - EVT_WINDOW_CREATE(self, self.OnCreateWindow) - else: - # but in MSW, the window create event happens durring the above - # call to __init__ so we have to do it here. - hdl = self.GetHandle() - self.renderWindow.SetWindowInfo(str(hdl)) - - - EVT_LEFT_DOWN (self, self.SaveClick) - EVT_MIDDLE_DOWN(self, self.SaveClick) - EVT_RIGHT_DOWN (self, self.SaveClick) - EVT_LEFT_UP (self, self.Release) - EVT_MIDDLE_UP (self, self.Release) - EVT_RIGHT_UP (self, self.Release) - EVT_MOTION (self, self.MouseMotion) - - - def GetRenderer(self): - self.renderWindow.GetRenderers().InitTraversal() - return self.renderWindow.GetRenderers().GetNextItem() - - - def GetRenderWindow(self): - return self.renderWindow - - - def OnPaint(self, event): - dc = wxPaintDC(self) - self.renderWindow.Render() - - def OnCreateWindow(self, event): - hdl = self.GetHandle() - self.renderWindow.SetWindowInfo(str(hdl)) - - def OnEraseBackground(self, event): - pass - - - - def SaveClick(self, event): - self.prev_x, self.prev_y = event.GetPositionTuple() - self.CaptureMouse() - - def Release(self, event): - self.ReleaseMouse() - - def MouseMotion(self, event): - event.x, event.y = event.GetPositionTuple() - size = self.GetClientSize() - if event.LeftIsDown(): - # rotate - camera = self.GetRenderer().GetActiveCamera() - camera.Azimuth(float(self.prev_x - event.x) / size.width * 360) - camera.Elevation(float(event.y - self.prev_y) / size.width * 360) - camera.OrthogonalizeViewUp() - self.MotionUpdate(event) - - elif event.MiddleIsDown(): - # pan - camera = self.GetRenderer().GetActiveCamera() - camera.Yaw(-float(self.prev_x - event.x) / size.width * 30) - camera.Pitch(float(event.y - self.prev_y) / size.width * 30) - camera.OrthogonalizeViewUp() - self.MotionUpdate(event) - - elif event.RightIsDown(): - # dolly - camera = self.GetRenderer().GetActiveCamera() - camera.Dolly(math.exp(float((event.x - self.prev_x) - \ - (event.y - self.prev_y))/ \ - size.width)) - self.MotionUpdate(event) - - - def MotionUpdate(self,event): - renderer = self.GetRenderer() - renderer.GetLights().InitTraversal() - light = renderer.GetLights().GetNextItem() - camera = renderer.GetActiveCamera() - light.SetPosition(camera.GetPosition()) - light.SetFocalPoint(camera.GetFocalPoint()) - self.renderWindow.Render() - self.prev_x = event.x - self.prev_y = event.y - - -