def __init__(self, parent, image, glCanvas, do, chan=0, zdim=2): wx.Panel.__init__(self, parent, -1, size=parent.Size) self.image = image self.glCanvas = glCanvas self.do = do self.chan = chan self.zdim = zdim wx.EVT_PAINT(self, self.OnPaint) wx.EVT_SIZE(self, self.OnSize) wx.EVT_MOUSEWHEEL(self, self.OnWheel) wx.EVT_KEY_DOWN(self, self.OnKeyPress) wx.EVT_LEFT_DOWN(self, self.OnLeftDown) wx.EVT_LEFT_UP(self, self.OnLeftUp) wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown) wx.EVT_MIDDLE_UP(self, self.OnMiddleUp) wx.EVT_MOTION(self, self.OnMotion) self.selecting = False self.panning = False self.do.WantChangeNotification.append(self.Refresh)
def __init__(self, parent): wx.Panel.__init__(self, parent) wx.EVT_SIZE(self, self.OnSize) wx.EVT_IDLE(self, self.OnIdle) wx.EVT_MOVE(self, self.OnMove) wx.EVT_SET_FOCUS(self, self.OnFocus) wx.EVT_KILL_FOCUS(self, self.OnLostFocus) wx.EVT_MAXIMIZE(self, self.OnMaximize) wx.EVT_LEFT_DOWN(self, self.OnLeftDown) #~ wx.EVT_LEFT_UP(self, self.OnLeftUp) wx.EVT_RIGHT_DOWN(self, self.OnRightDown) wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown) wx.EVT_RIGHT_UP(self, self.OnRightUp) wx.EVT_MIDDLE_UP(self, self.OnMiddleUp) wx.EVT_MOTION(self, self.OnMotion) wx.EVT_KEY_DOWN(self, self.OnKeyDown) self._3dDisplay = None self._inited = False self.DynaZoom = False self.DynaRotate = False self.DynaPan = False self.dragStartPos = None self._drawbox = None self._selection = None if sys.platform == 'win32': self.Init3dViewer()
def __init__(self, parent): attribList = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24, glcanvas.WX_GL_STENCIL_SIZE, 8, 0) glcanvas.GLCanvas.__init__(self, parent, style=wx.WANTS_CHARS, attribList = attribList) self._base = self self._focus = None self._container = None self._container = glGuiContainer(self, (0,0)) self._shownError = False self._context = glcanvas.GLContext(self) self._glButtonsTexture = None self._glRobotTexture = None self._buttonSize = 64 self._animationList = [] self.glReleaseList = [] self._refreshQueued = False self._idleCalled = False wx.EVT_PAINT(self, self._OnGuiPaint) wx.EVT_SIZE(self, self._OnSize) wx.EVT_ERASE_BACKGROUND(self, self._OnEraseBackground) wx.EVT_LEFT_DOWN(self, self._OnGuiMouseDown) wx.EVT_LEFT_DCLICK(self, self._OnGuiMouseDown) wx.EVT_LEFT_UP(self, self._OnGuiMouseUp) wx.EVT_RIGHT_DOWN(self, self._OnGuiMouseDown) wx.EVT_RIGHT_DCLICK(self, self._OnGuiMouseDown) wx.EVT_RIGHT_UP(self, self._OnGuiMouseUp) wx.EVT_MIDDLE_DOWN(self, self._OnGuiMouseDown) wx.EVT_MIDDLE_DCLICK(self, self._OnGuiMouseDown) wx.EVT_MIDDLE_UP(self, self._OnGuiMouseUp) wx.EVT_MOTION(self, self._OnGuiMouseMotion) wx.EVT_CHAR(self, self._OnGuiKeyChar) wx.EVT_KILL_FOCUS(self, self.OnFocusLost) wx.EVT_IDLE(self, self._OnIdle)
def __init__(self, parent=None, id=-1, title='Title', pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE | wx.CLIP_CHILDREN): """Create a Frame instance. """ # Create the actual window (a wx Frame) self._wx = wx.Frame(parent, id, title, pos, size, style) self._keys = keys.Keys() self._keys.attach(self) # Set up the wx main menu bar self._menu_id_manager = idmanager.IDManager(10) menubar = wx.MenuBar() self._wx.SetMenuBar(menubar) self._menu = None self.CreateStatusBar() wx.EVT_LEFT_DOWN(self, self.onLeftDown) wx.EVT_LEFT_UP(self, self.onLeftUp) wx.EVT_MIDDLE_DOWN(self, self.onMiddleDown) wx.EVT_MIDDLE_UP(self, self.onMiddleUp) wx.EVT_RIGHT_DOWN(self, self.onRightDown) wx.EVT_RIGHT_UP(self, self.onRightUp)
def __init__(self, parent, id, shapes=None, **kwds): wx.glcanvas.GLCanvas.__init__(self, parent, id, **kwds) self.parent = parent self.camera = Camera() self.init = False self.lastx = self.x = 30 self.lasty = self.y = 30 self.create_menu() wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground) wx.EVT_SIZE(self, self.OnSize) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_LEFT_DOWN(self, self.OnMouseDown) wx.EVT_MIDDLE_DOWN(self, self.OnMouseDown) wx.EVT_RIGHT_DOWN(self, self.OnMouseDown) wx.EVT_LEFT_UP(self, self.OnMouseUp) wx.EVT_MIDDLE_UP(self, self.OnMouseUp) wx.EVT_RIGHT_UP(self, self.OnMouseUp) wx.EVT_MOTION(self, self.OnMouseMotion) self.popup_menu = 0 self.color = (0., 0., 0.) #black #self.color = (1.,1.,1.) #white self.dlist = None self.measure = False self.sketching = False self.shapes = shapes self.left_button_click = True self.middle_button_click = True self.right_button_click = True self.beginx, self.beginy = 0, 0 return
def setupCallbacks(self): """Setup various callbacks for this context Binds most of the wxPython event types to callbacks on this object, which allows interactive sub-classes to easily manage the bindings without needing any wxPython-specific logic. """ if not self.init: self.init = 1 # Bind the wxPython background erase event # Without this binding, the canvas will tend to flicker wx.EVT_ERASE_BACKGROUND(self, self.wxOnEraseBackground) # Handle resizing of the window wx.EVT_SIZE(self, self.wxOnSize) # Handle requests to display this canvas wx.EVT_PAINT(self, self.wxOnPaint) # Handle keyboard events... wx.EVT_KEY_DOWN(self, self.wxOnKeyDown) wx.EVT_KEY_UP(self, self.wxOnKeyUp) wx.EVT_CHAR(self, self.wxOnCharacter) # Handle mouse events... wx.EVT_LEFT_DOWN(self, self.wxOnMouseButton) wx.EVT_RIGHT_DOWN(self, self.wxOnMouseButton) wx.EVT_MIDDLE_DOWN(self, self.wxOnMouseButton) wx.EVT_LEFT_UP(self, self.wxOnMouseButton) wx.EVT_RIGHT_UP(self, self.wxOnMouseButton) wx.EVT_MIDDLE_UP(self, self.wxOnMouseButton) wx.EVT_MOTION(self, self.wxOnMouseMove) if hasattr(self, 'OnIdle'): wx.EVT_IDLE(self, self.wxOnIdle)
def _on_close(self, event): # Might be scrollbars or other native components under # us that are generating this event if event.GetWindow() == self.control: self._gc = None wx.EVT_ERASE_BACKGROUND(self.control, None) wx.EVT_PAINT(self.control, None) wx.EVT_SIZE(self.control, None) wx.EVT_LEFT_DOWN(self.control, None) wx.EVT_LEFT_UP(self.control, None) wx.EVT_LEFT_DCLICK(self.control, None) wx.EVT_MIDDLE_DOWN(self.control, None) wx.EVT_MIDDLE_UP(self.control, None) wx.EVT_MIDDLE_DCLICK(self.control, None) wx.EVT_RIGHT_DOWN(self.control, None) wx.EVT_RIGHT_UP(self.control, None) wx.EVT_RIGHT_DCLICK(self.control, None) wx.EVT_MOTION(self.control, None) wx.EVT_ENTER_WINDOW(self.control, None) wx.EVT_LEAVE_WINDOW(self.control, None) wx.EVT_MOUSEWHEEL(self.control, None) wx.EVT_KEY_DOWN(self.control, None) wx.EVT_KEY_UP(self.control, None) wx.EVT_CHAR(self.control, None) wx.EVT_WINDOW_DESTROY(self.control, None) self.control.SetDropTarget(None) self.control = None self.component.cleanup(self) self.component.parent = None self.component.window = None self.component = None return
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() #self.camera = MouseSphericalCamera(self.size.x, self.size.y) self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = BBox3D() self.unionbbox = BBox3D() random.seed() #Face mesh variables and manipulation variables self.mesh1 = None self.mesh1Dist = None self.mesh1DistLoaded = False self.mesh2 = None self.mesh2DistLoaded = False self.mesh2Dist = None self.mesh3 = None #Holds the transformations of the best iteration in ICP self.transformations = [] self.savingMovie = False self.movieIter = 0 self.displayMeshFaces = True self.displayMeshEdges = False self.displayMeshVertices = False self.displayMeshNormals = False self.displayPrincipalAxes = False self.vertexColors = np.zeros(0) self.cutPlane = None self.displayCutPlane = False self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = np.array([[1, 1, 1], [-1, -1, -1]]) random.seed() #Point cloud and playing information self.displayCount = 0 self.SampleDelays = np.array([]) self.NFrames = 0 self.currFrame = 0 self.PointClouds = [] self.Playing = False self.PlayIDX = 0 self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion) #self.initGL() #Load in candide mesh information and store in an index buffer fin = open('candideFaces.txt', 'r') self.candideIndices = np.array([[int(a) for a in x.split()] for x in fin.readlines()], dtype=np.int32) self.candideFaces = vbo.VBO(candideIndices, target=GL_ELEMENT_ARRAY_BUFFER) fin.close() fin = open('candideTexCoords.txt', 'r') self.texCoords = vbo.VBO( np.array([[float(a) for a in x.split()] for x in fin.readlines()], dtype=np.float32)) fin.close() self.texID = -1
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() self.camera = MousePolarCamera(self.size.x, self.size.y) #self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = BBox3D() self.unionbbox = BBox3D() random.seed() #State variables for saving screenshots self.filepath = None self.rotfilePrefix = "Rotation" self.rotstartAngle = -50 self.rotendAngle = 50 self.rotangleInc = 5 self.rotAngle = 0 self.zCenter = 0 #Face mesh variables and manipulation variables self.mesh = None self.meshCentroid = None self.meshPrincipalAxes = None self.displayMeshFaces = True self.displayMeshEdges = False self.displayMeshVertices = False self.displayMeshNormals = False self.displayPrincipalAxes = False self.useLighting = False self.useTexture = True self.vertexColors = np.zeros(0) self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent, takeScreenshots, screenshotsPrefix="", rotationAngle=0): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent self.takeScreenshots = takeScreenshots print "Taking screenshots: %s" % self.takeScreenshots self.screenshotCounter = 1 self.screenshotsPrefix = screenshotsPrefix self.rotationAngle = rotationAngle #Camera state variables self.size = self.GetClientSize() #self.camera = MouseSphericalCamera(self.size.x, self.size.y) self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = BBox3D() self.unionbbox = BBox3D() random.seed() #Face mesh variables and manipulation variables self.faceMesh = None self.displayMeshFaces = True self.displayMeshEdges = False self.displayMeshVertices = False self.displayMeshNormals = False self.vertexColors = np.zeros(0) self.cutPlane = None self.displayCutPlane = False self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def OnInit(self): wx.InitAllImageHandlers() self.frame = TopFrame(None, -1, "", bitmapFile=self.bitmapFile) self.SetTopWindow(self.frame) self.frame.Show() self.frame.Center() self.SetTopWindow(self.frame) self.ID_Timer = wx.NewId() self.timer = wx.Timer(self, self.ID_Timer) wx.EVT_TIMER(self, self.ID_Timer, self.end) wx.EVT_LEFT_UP(self, self.mouse_action) wx.EVT_RIGHT_UP(self, self.mouse_action) wx.EVT_MIDDLE_UP(self, self.mouse_action) self.timer.Start(self.delay) return True
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() #self.camera = MouseSphericalCamera(self.size.x, self.size.y) self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.bbox = BBox3D() #Face mesh variables and manipulation variables self.mesh = None self.meshCentroid = None self.displayMeshFaces = True self.displayMeshEdges = False self.displayBoundary = False self.displayMeshVertices = True self.displayVertexNormals = False self.displayFaceNormals = False self.useLighting = True self.useTexture = False self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent, coverSong, SSMPlot): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.coverSong = coverSong self.SSMPlot = SSMPlot #Camera state variables self.size = self.GetClientSize() self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = np.array([[1, 1, 1], [-1, -1, -1]]) #Set up OpenGL vertex buffer for points and colors self.YVBO = vbo.VBO(np.array(self.coverSong.Y, dtype='float32')) self.YColorsVBO = vbo.VBO( np.array(self.coverSong.YColors, dtype='float32')) #Point cloud and playing information self.DrawEdges = False self.Playing = False self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = np.array([[1, 1, 1], [-1, -1, -1]]) random.seed() #Point cloud and playing information self.displayCount = 0 self.SampleDelays = np.array([]) self.NFrames = 0 self.currFrame = 0 self.PointClouds = [] self.Playing = False self.PlayIDX = 0 self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent): attrib_list = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24, glcanvas.WX_GL_STENCIL_SIZE, 8, 0) glcanvas.GLCanvas.__init__(self, parent, style=wx.WANTS_CHARS, attribList=attrib_list) self._base = self self._focus = None self._container = None self._container = glGuiContainer(self, (0, 0)) self._shown_error = False self._context = glcanvas.GLContext(self) self._button_size = 64 self._animation_list = [] self.gl_release_list = [] self._refresh_queued = False self._idle_called = False wx.EVT_PAINT(self, self._on_gui_paint) wx.EVT_SIZE(self, self._on_size) wx.EVT_ERASE_BACKGROUND(self, self._on_erase_background) wx.EVT_LEFT_DOWN(self, self._on_gui_mouse_down) wx.EVT_LEFT_DCLICK(self, self._on_gui_mouse_down) wx.EVT_LEFT_UP(self, self._on_gui_mouse_up) wx.EVT_RIGHT_DOWN(self, self._on_gui_mouse_down) wx.EVT_RIGHT_DCLICK(self, self._on_gui_mouse_down) wx.EVT_RIGHT_UP(self, self._on_gui_mouse_up) wx.EVT_MIDDLE_DOWN(self, self._on_gui_mouse_down) wx.EVT_MIDDLE_DCLICK(self, self._on_gui_mouse_down) wx.EVT_MIDDLE_UP(self, self._on_gui_mouse_up) wx.EVT_MOTION(self, self._on_gui_mouse_motion) wx.EVT_KEY_DOWN(self, self._on_gui_key_down) wx.EVT_KEY_UP(self, self._on_gui_key_up) wx.EVT_KILL_FOCUS(self, self._on_focus_lost) wx.EVT_IDLE(self, self._on_idle)
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList = attribs) self.context = glcanvas.GLContext(self) self.parent = parent #Camera state variables self.size = self.GetClientSize() #self.camera = MouseSphericalCamera(self.size.x, self.size.y) self.camera = MousePolarCamera(self.size.width, self.size.height) #Skeleton animation variables self.skeleton = Skeleton() self.animator = SkeletonAnimator(self.skeleton) self.animationState = 0 self.animating = False #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = np.array([[-1, -1, -1], [1, 1, 1]]) random.seed() self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.GUIState = STATE_NORMAL self.GUISubstate = SUBSTATE_NONE self.parent = parent #Camera state variables self.size = self.GetClientSize() self.camera = MouseSphericalCamera(self.size.x, self.size.y) #self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False self.bbox = BBox3D() self.unionbbox = BBox3D() random.seed() #State variables for saving screenshots self.rotfilePrefix = "Rotation" self.rotstartAngle = -50 self.rotendAngle = 50 self.rotangleInc = 5 self.rotAngle = 0 self.lightPhi = 0 self.lightTheta = 0 self.lightIter = 0 #State variables for laplacian mesh operations self.laplacianConstraints = { } #Elements will be key-value pairs (idx, Point3D(new position)) self.laplaceCurrentIdx = -1 self.eigvalues = np.zeros(0) self.eigvectors = np.zeros(0) #Face mesh variables and manipulation variables self.mesh = None self.meshCentroid = None self.meshPrincipalAxes = None self.displayMeshFaces = True self.displayMeshEdges = False self.displayMeshVertices = False self.displayMeshNormals = False self.displayPrincipalAxes = False self.useLighting = True self.useTexture = True self.vertexColors = np.zeros(0) self.PRSTPlaneMesh = None self.PRSTPointPairs = [] self.cutPlane = None self.displayCutPlane = False self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion)
def __init__(self, parent, dstack = None, aspect=1, do = None, voxelsize=[1,1,1]): if (dstack == None and do == None): dstack = scipy.zeros((10,10)) if do == None: self.do = DisplayOpts(dstack, aspect=aspect) self.do.Optimise() else: self.do = do self.voxelsize = voxelsize scrolledImagePanel.ScrolledImagePanel.__init__(self, parent, self.DoPaint, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL) self.do.WantChangeNotification.append(self.GetOpts) #self.do.WantChangeNotification.append(self.Refresh) self.SetVirtualSize(wx.Size(self.do.ds.shape[0],self.do.ds.shape[1])) #self.imagepanel.SetSize(wx.Size(self.do.ds.shape[0],self.do.ds.shape[1])) self.points =[] self.pointsR = [] self.showPoints = True self.showTracks = True self.showContours = True self.showScaleBar = True self.scaleBarLength = 2000 self.pointMode = 'confoc' self.pointTolNFoc = {'confoc' : (5,5,5), 'lm' : (2, 5, 5), 'splitter' : (2,5,5)} self.showAdjacentPoints = False self.pointSize = 11 self.layerMode = 'Add' self.psfROIs = [] self.psfROISize=[30,30,30] self.lastUpdateTime = 0 self.lastFrameTime = 2e-3 #self.do.scale = 0 self.crosshairs = True #self.showSelection = True self.selecting = False self.aspect = 1. self.slice = None self.overlays = [] self._oldIm = None self._oldImSig = None self.CenteringHandlers = [] self.labelPens = [wx.Pen(wx.Colour(*pylab.cm.hsv(v, bytes=True)), 2) for v in numpy.linspace(0, 1, 16)] # if not aspect == None: # if scipy.isscalar(aspect): # self.do.aspects[2] = aspect # elif len(aspect) == 3: # self.do.aspects = aspect #self.SetOpts() #self.optionspanel.RefreshHists() self.updating = 0 self.showOptsPanel = 1 self.refrTimer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.OnRefrTimer) wx.EVT_MOUSEWHEEL(self.imagepanel, self.OnWheel) wx.EVT_KEY_DOWN(self.imagepanel, self.OnKeyPress) #wx.EVT_KEY_DOWN(self.Parent(), self.OnKeyPress) wx.EVT_LEFT_DOWN(self.imagepanel, self.OnLeftDown) wx.EVT_LEFT_UP(self.imagepanel, self.OnLeftUp) wx.EVT_MIDDLE_DOWN(self.imagepanel, self.OnMiddleDown) wx.EVT_MIDDLE_UP(self.imagepanel, self.OnMiddleUp) wx.EVT_RIGHT_DOWN(self.imagepanel, self.OnRightDown) wx.EVT_RIGHT_UP(self.imagepanel, self.OnRightUp) wx.EVT_MIDDLE_DCLICK(self.imagepanel, self.OnMiddleDClick) wx.EVT_MOTION(self.imagepanel, self.OnMotion) # wx.EVT_ERASE_BACKGROUND(self.imagepanel, self.DoNix) wx.EVT_ERASE_BACKGROUND(self, self.DoNix)
def __init__(self, parent): attribs = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24) glcanvas.GLCanvas.__init__(self, parent, -1, attribList=attribs) self.context = glcanvas.GLContext(self) self.setText = False self.parent = parent #Camera state variables self.size = self.GetClientSize() #self.camera = MouseSphericalCamera(self.size.x, self.size.y) self.camera = MousePolarCamera(self.size.width, self.size.height) #Main state variables self.MousePos = [0, 0] self.initiallyResized = False random.seed() #GUI State Variables self.GUIState = STATE_INTRO self.GUISubstate = -1 #Head Mesh self.headMesh = PolyMesh() self.headMesh.loadFile('NotreDameMedium.off') self.headMeshLowres = PolyMesh() self.headMeshLowres.loadFile('NotreDameLowres.off') self.styrofoamHead = PolyMesh() self.styrofoamHead.loadFile('StyrofoamHead.off') self.rotAngle = 0 self.zoom = 0 self.rotCount = 0 self.timelineCount = 0 #User's face self.userMesh = None self.colorUserMesh = None #ICP state variables self.ICPTransformation = np.zeros(0) self.ICPMutex = Lock() self.ICPThread = None self.bbox = self.headMesh.getBBox() self.camera.centerOnBBox(self.bbox, theta=-math.pi / 2, phi=math.pi / 2) self.zCenter = (self.bbox.zmax + self.bbox.zmin) / 2.0 self.GLinitialized = False #GL-related events wx.EVT_ERASE_BACKGROUND(self, self.processEraseBackgroundEvent) wx.EVT_SIZE(self, self.processSizeEvent) wx.EVT_PAINT(self, self.processPaintEvent) #Mouse Events wx.EVT_LEFT_DOWN(self, self.MouseDown) wx.EVT_LEFT_UP(self, self.MouseUp) wx.EVT_RIGHT_DOWN(self, self.MouseDown) wx.EVT_RIGHT_UP(self, self.MouseUp) wx.EVT_MIDDLE_DOWN(self, self.MouseDown) wx.EVT_MIDDLE_UP(self, self.MouseUp) wx.EVT_MOTION(self, self.MouseMotion) self.initGL()
def __init__(self, parent, ID, *args, **kw): # miscellaneous protected variables self._CurrentRenderer = None self._CurrentCamera = None self._CurrentZoom = 1.0 self._CurrentLight = None self._ViewportCenterX = 0 self._ViewportCenterY = 0 self._Picker = vtkCellPicker() self._PickedActor = None self._PickedProperty = vtkProperty() self._PickedProperty.SetColor(1, 0, 0) self._PrePickedProperty = None # these record the previous mouse position self._LastX = 0 self._LastY = 0 # the current interaction mode (Rotate, Pan, Zoom, etc) self._Mode = None self._ActiveButton = None # private attributes self.__OldFocus = None # used by the LOD actors self._DesiredUpdateRate = 15 self._StillUpdateRate = 0.0001 # First do special handling of some keywords: # stereo, position, size, width, height, style stereo = 0 if 'stereo' in kw: if kw['stereo']: stereo = 1 del kw['stereo'] position = wx.DefaultPosition if 'position' in kw: position = kw['position'] del kw['position'] size = wx.DefaultSize if 'size' in kw: size = kw['size'] del kw['size'] if 'width' in kw and 'height' in kw: size = (kw['width'], kw['height']) del kw['width'] del kw['height'] # wxWANTS_CHARS says to give us e.g. TAB # wxNO_FULL_REPAINT_ON_RESIZE cuts down resize flicker under GTK style = wx.WANTS_CHARS | wx.NO_FULL_REPAINT_ON_RESIZE if 'style' in kw: style = style | kw['style'] del kw['style'] # the enclosing frame must be shown under GTK or the windows # don't connect together properly l = [] p = parent while p: # make a list of all parents l.append(p) p = p.GetParent() l.reverse() # sort list into descending order for p in l: p.Show() # initialize the wxWindow baseClass.__init__(self, parent, ID, position, size, style) # create the RenderWindow and initialize it self._RenderWindow = vtkRenderWindow() try: self._RenderWindow.SetSize(size.width, size.height) except AttributeError: self._RenderWindow.SetSize(size[0], size[1]) if stereo: self._RenderWindow.StereoCapableWindowOn() self._RenderWindow.SetStereoTypeToCrystalEyes() self.__Created = 0 # Tell the RenderWindow to render inside the wxWindow. if self.GetHandle(): self.__Created = 1 self._RenderWindow.SetWindowInfo(str(self.GetHandle())) # refresh window by doing a Render wx.EVT_PAINT(self, self.OnPaint) # turn off background erase to reduce flicker wx.EVT_ERASE_BACKGROUND(self, lambda e: None) # Bind the events to the event converters wx.EVT_RIGHT_DOWN(self, self._OnButtonDown) wx.EVT_LEFT_DOWN(self, self._OnButtonDown) wx.EVT_MIDDLE_DOWN(self, self._OnButtonDown) wx.EVT_RIGHT_UP(self, self._OnButtonUp) wx.EVT_LEFT_UP(self, self._OnButtonUp) wx.EVT_MIDDLE_UP(self, self._OnButtonUp) wx.EVT_MOTION(self, self.OnMotion) wx.EVT_ENTER_WINDOW(self, self._OnEnterWindow) wx.EVT_LEAVE_WINDOW(self, self._OnLeaveWindow) wx.EVT_CHAR(self, self.OnChar) wx.EVT_KEY_DOWN(self, self.OnKeyDown) wx.EVT_KEY_UP(self, self.OnKeyUp) wx.EVT_SIZE(self, self._OnSize) wx.EVT_MOVE(self, self.OnMove) wx.EVT_SET_FOCUS(self, self.OnSetFocus) wx.EVT_KILL_FOCUS(self, self.OnKillFocus)
def __init__(self, parent): attriblist = [ wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_STENCIL_SIZE, 8, wx.glcanvas.WX_GL_DOUBLEBUFFER, 16 ] GLCanvas.__init__(self, parent, -1, attribList=attriblist) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_SIZE(self, self.OnSize) wx.EVT_MOUSEWHEEL(self, self.OnWheel) wx.EVT_LEFT_DOWN(self, self.OnLeftDown) wx.EVT_LEFT_UP(self, self.OnLeftUp) wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown) wx.EVT_MIDDLE_UP(self, self.OnMiddleUp) wx.EVT_RIGHT_DOWN(self, self.OnMiddleDown) wx.EVT_RIGHT_UP(self, self.OnMiddleUp) wx.EVT_MOTION(self, self.OnMouseMove) wx.EVT_KEY_DOWN(self, self.OnKeyPress) #wx.EVT_MOVE(self, self.OnMove) self.gl_context = wx.glcanvas.GLContext(self) self.nVertices = 0 self.IScale = [1.0, 1.0, 1.0] self.zeroPt = [0, 1.0 / 3, 2.0 / 3] self.cmap = pylab.cm.hsv self.clim = [0, 1] self.alim = [0, 1] self.displayMode = '2D' #3DPersp' #one of 3DPersp, 3DOrtho, 2D self.wireframe = False self.parent = parent self.pointSize = 5 #default point size = 5nm #self.pixelsize = 5./800 #self.xmin =0 #self.xmax = self.pixelsize*self.Size[0] #self.ymin = 0 #self.ymax = self.pixelsize*self.Size[1] self.scaleBarLength = 1000 self.scaleBarOffset = (10, 10) #pixels from corner self.scaleBarDepth = 10.0 #pixels self.scaleBarColour = [1, 1, 0] self.centreCross = False self.LUTDraw = True self.mode = 'triang' self.colouring = 'area' self.drawModes = { 'triang': GL_TRIANGLES, 'quads': GL_QUADS, 'edges': GL_LINES, 'points': GL_POINTS } self.c = numpy.array([1, 1, 1]) self.a = numpy.array([1, 1, 1]) self.zmin = -10 self.zmax = 10 self.angup = 0 self.angright = 0 self.vecUp = numpy.array([0, 1, 0]) self.vecRight = numpy.array([1, 0, 0]) self.vecBack = numpy.array([0, 0, 1]) self.xc = 0 self.yc = 0 self.zc = 0 self.zc_o = 0 self.sx = 100 self.sy = 100 self.scale = 1 self.stereo = False self.eye_dist = .01 self.dragging = False self.panning = False self.edgeThreshold = 20 self.selectionSettings = SelectionSettings() self.selectionDragging = False self.layers = [] self.overlays = [] self.messageOverlay = MessageOverlay() self.overlays.append(self.messageOverlay) self.wantViewChangeNotification = WeakSet() self.pointSelectionCallbacks = [] return
def __init__(self, parent, wid=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, **traits): AbstractWindow.__init__(self, **traits) self._timer = None self._mouse_captured = False # Due to wx wonkiness, we don't reliably get cursor position from # a wx KeyEvent. Thus, we manually keep track of when we last saw # the mouse and use that information instead. These coordinates are # in the wx coordinate space, i.e. pre-self._flip_y(). self._last_mouse_pos = (0, 0) # Create the delegate: self.control = control = self._create_control(parent, wid, pos, size) # Set up the 'erase background' event handler: wx.EVT_ERASE_BACKGROUND(control, self._on_erase_background) # Set up the 'paint' event handler: wx.EVT_PAINT(control, self._paint) wx.EVT_SIZE(control, self._on_size) # Set up mouse event handlers: wx.EVT_LEFT_DOWN(control, self._on_left_down) wx.EVT_LEFT_UP(control, self._on_left_up) wx.EVT_LEFT_DCLICK(control, self._on_left_dclick) wx.EVT_MIDDLE_DOWN(control, self._on_middle_down) wx.EVT_MIDDLE_UP(control, self._on_middle_up) wx.EVT_MIDDLE_DCLICK(control, self._on_middle_dclick) wx.EVT_RIGHT_DOWN(control, self._on_right_down) wx.EVT_RIGHT_UP(control, self._on_right_up) wx.EVT_RIGHT_DCLICK(control, self._on_right_dclick) wx.EVT_MOTION(control, self._on_mouse_move) wx.EVT_ENTER_WINDOW(control, self._on_window_enter) wx.EVT_LEAVE_WINDOW(control, self._on_window_leave) wx.EVT_MOUSEWHEEL(control, self._on_mouse_wheel) # Handle key up/down events: wx.EVT_KEY_DOWN(control, self._on_key_pressed) wx.EVT_KEY_UP(control, self._on_key_released) wx.EVT_CHAR(control, self._on_character) # Attempt to allow wxPython drag and drop events to be mapped to # Enable drag events: # Handle window close and cleanup wx.EVT_WINDOW_DESTROY(control, self._on_close) if PythonDropTarget is not None: control.SetDropTarget(LessSuckyDropTarget(self)) self._drag_over = [] # In some cases, on the Mac at least, we never get an initial EVT_SIZE # since the initial size is correct. Because of this we call _on_size # here to initialize our bounds. self._on_size(None) return
def __init__(self, parent): attriblist = [ wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_STENCIL_SIZE, 8, wx.glcanvas.WX_GL_DOUBLEBUFFER, 16 ] GLCanvas.__init__(self, parent, -1, attribList=attriblist) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_SIZE(self, self.OnSize) wx.EVT_MOUSEWHEEL(self, self.OnWheel) wx.EVT_LEFT_DOWN(self, self.OnLeftDown) wx.EVT_LEFT_UP(self, self.OnLeftUp) wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown) wx.EVT_MIDDLE_UP(self, self.OnMiddleUp) wx.EVT_MOTION(self, self.OnMouseMove) wx.EVT_KEY_DOWN(self, self.OnKeyPress) #wx.EVT_MOVE(self, self.OnMove) self.gl_context = wx.glcanvas.GLContext(self) self.init = 0 self.nVertices = 0 self.IScale = [1.0, 1.0, 1.0] self.zeroPt = [0, 1.0 / 3, 2.0 / 3] self.cmap = pylab.cm.hsv self.clim = [0, 1] self.alim = [0, 1] self.wireframe = False self.parent = parent self.pointSize = 5 #default point size = 5nm self.pixelsize = 5. / 800 self.xmin = 0 self.xmax = self.pixelsize * self.Size[0] self.ymin = 0 self.ymax = self.pixelsize * self.Size[1] self.scaleBarLength = 200 self.scaleBarOffset = (20.0, 20.0) #pixels from corner self.scaleBarDepth = 10.0 #pixels self.scaleBarColour = [1, 1, 0] self.mode = 'triang' self.colouring = 'area' self.drawModes = { 'triang': GL_TRIANGLES, 'quads': GL_QUADS, 'edges': GL_LINES, 'points': GL_POINTS } self.c = numpy.array([1, 1, 1]) self.a = numpy.array([1, 1, 1]) self.zmin = -10 self.zmax = 10 self.angup = 0 self.angright = 0 self.vecUp = numpy.array([0, 1, 0]) self.vecRight = numpy.array([1, 0, 0]) self.vecBack = numpy.array([0, 0, 1]) self.xc = 0 self.yc = 0 self.zc = 0 self.scale = 1 self.stereo = True self.eye_dist = .1 self.dragging = False self.panning = False self.edgeThreshold = 200 self.layers = [] return