From f67a2b41f4b35d80b591408e0a4d68dacbae51d2 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Mon, 22 Sep 2014 14:00:52 -0700 Subject: [PATCH 01/10] put changes back in --- Packages/vcs/Lib/Canvas.py | 6 ++++-- Packages/vcs/Lib/VTKPlots.py | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Packages/vcs/Lib/Canvas.py b/Packages/vcs/Lib/Canvas.py index b08ef4f6db..e9912906fb 100644 --- a/Packages/vcs/Lib/Canvas.py +++ b/Packages/vcs/Lib/Canvas.py @@ -26,6 +26,7 @@ Normally, created by vcs.init() Contains the method plot. """ +import __main__ import warnings #import Tkinter from pauser import pause @@ -3750,8 +3751,9 @@ def set_convert_labels(copy_mthd,test=0): setattr(arglist[0],p,tmp) if dn is not None: self.display_names.append(result.name) - if not bg: - warnings.warn("VCS Behaviour changed, in order to interact with window, start the interaction mode with:\n x.interact()") + if not hasattr(__main__,"__file__") and not bg: + warnings.warn("VCS Behaviour changed, in order to interact with window, start the interaction mode with:\n x.interact()") + return result def setAnimationStepper( self, stepper ): diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index cef697cd50..1b2eb63c58 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -28,7 +28,9 @@ def __init__(self,parent): self.AddObserver("LeftButtonReleaseEvent", parent.leftButtonReleaseEvent ) self.AddObserver( "ModifiedEvent", parent.configureEvent ) self.AddObserver( "ConfigureEvent", parent.configureEvent ) - + self.AddObserver( "RenderEvent", parent.renderEvent ) + #self.AddObserver( "AnyEvent",parent.stdEvent) + class VTKVCSBackend(object): def __init__(self,canvas,renWin=None, debug=False,bg=None): self._lastSize = None @@ -42,6 +44,8 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): self.renderer = None self._plot_keywords = ['renderer',] self.numberOfPlotCalls = 0 + self.numberOfPlotCalls = 0 + self.renderWindowSize=None if renWin is not None: self.renWin = renWin if renWin.GetInteractor() is None and self.bg is False: @@ -59,10 +63,16 @@ def setAnimationStepper( self, stepper ): def interact(self,*args,**kargs): warnings.warn("Press 'Q' to exit interactive mode and continue script execution") interactor = self.renWin.GetInteractor() - istyle = interactor.GetInteractorStyle() -# print "STYLE:",istyle + self.renWin.AddObserver( "RenderEvent", self.renderEvent ) interactor.Start() + def renderEvent(self,caller,evt): + renwin = self.renWin if (caller == None) else caller + window_size = renwin.GetSize() + if ( window_size <> self.renderWindowSize ): + self.configureEvent(caller,evt) + self.renderWindowSize = window_size + def leftButtonPressEvent(self,obj,event): xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() From 3b08950c15f6a223200a011b0c9e01f763e2a828 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Thu, 13 Nov 2014 08:57:40 -0800 Subject: [PATCH 02/10] added AnyEvent to see what is happening (not much on mac) added prints and tried to send some click event but no luck so far --- Packages/vcs/Lib/VTKPlots.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 4801c04864..157b47be03 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -29,7 +29,7 @@ def __init__(self,parent): self.AddObserver( "ModifiedEvent", parent.configureEvent ) self.AddObserver( "ConfigureEvent", parent.configureEvent ) self.AddObserver( "RenderEvent", parent.renderEvent ) - #self.AddObserver( "AnyEvent",parent.stdEvent) + self.AddObserver( "AnyEvent",parent.stdEvent) class VTKVCSBackend(object): def __init__(self,canvas,renWin=None, debug=False,bg=None): @@ -72,14 +72,18 @@ def interact(self,*args,**kargs): warnings.warn("Press 'Q' to exit interactive mode and continue script execution") interactor.Start() + def stdEvent(self,caller,evt): + print evt def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller window_size = renwin.GetSize() + print "Yes we are herE",window_size,self.renderWindowSize if ( window_size <> self.renderWindowSize ): self.configureEvent(caller,evt) self.renderWindowSize = window_size def leftButtonPressEvent(self,obj,event): + print "We do come here" xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() x = float(xy[0])/sz[0] @@ -164,10 +168,13 @@ def leftButtonReleaseEvent(self,obj,event): def configureEvent(self,obj,ev): sz = self.renWin.GetSize() + print "Conf:",sz,self._lastSize if self._lastSize == sz: # or (self._lastSize is None and hasattr(self,"fromVistrails")): # We really only care about resize event # this is mainly to avoid segfault vwith Vistraisl which does # not catch configure Events but only modifiedEvents.... + if self.renWin is not None: + self.renWin.Render() return self._lastSize = sz plots_args = [] @@ -193,6 +200,13 @@ def configureEvent(self,obj,ev): self.createLogo() if self.renWin.GetSize()!=(0,0): self.scaleLogo() + if self.renWin is not None: + self.renWin.Render() + iren = self.renWin.GetInteractor() + if iren is not None: + iren.InvokeEvent(vtk.vtkCommand.LeftButtonPressEvent) + iren.InvokeEvent(vtk.vtkCommand.LeftButtonReleaseEvent) + self.configureEvent(obj,ev) def clear(self): if self.renWin is None: #Nothing to clear From 67998e75d491161223a9bee9f4264864b8478371 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Tue, 18 Nov 2014 14:13:56 -0800 Subject: [PATCH 03/10] ok this works, needs clean up --- Packages/vcs/Lib/VTKPlots.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 157b47be03..78e74bde5f 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -51,6 +51,7 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): if renWin.GetInteractor() is None and self.bg is False: self.createDefaultInteractor() self.logo = None + self.reDO = False # def applicationFocusChanged(self): # for plotApp in self.plotApps.values(): @@ -66,6 +67,12 @@ def interact(self,*args,**kargs): return interactor = self.renWin.GetInteractor() self.renWin.AddObserver( "RenderEvent", self.renderEvent ) + self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) + self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) + self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) + self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) + self.renWin.AddObserver( "AnyEvent",self.stdEvent) + self.renWin.AddObserver( "EndEvent",self.endEvent) if interactor is None: warnings.warn("Cannot start interaction. Blank plot?") return @@ -74,6 +81,12 @@ def interact(self,*args,**kargs): def stdEvent(self,caller,evt): print evt + def endEvent(self,obj,event): + if self.renWin is not None: + if self.reDO: + self.reDO = False + self.renWin.Render() + def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller window_size = renwin.GetSize() @@ -161,6 +174,7 @@ def leftButtonPressEvent(self,obj,event): self.renWin.Render() def leftButtonReleaseEvent(self,obj,event): + self._lastSize = None self.clickRenderer.RemoveAllViewProps() self.clickRenderer.Render() self.renWin.RemoveRenderer(self.clickRenderer) @@ -202,11 +216,12 @@ def configureEvent(self,obj,ev): self.scaleLogo() if self.renWin is not None: self.renWin.Render() - iren = self.renWin.GetInteractor() - if iren is not None: - iren.InvokeEvent(vtk.vtkCommand.LeftButtonPressEvent) - iren.InvokeEvent(vtk.vtkCommand.LeftButtonReleaseEvent) - self.configureEvent(obj,ev) + #iren = self.renWin.GetInteractor() + #if iren is not None: + # iren.InvokeEvent(vtk.vtkCommand.LeftButtonPressEvent) + # iren.InvokeEvent(vtk.vtkCommand.LeftButtonReleaseEvent) + # self.configureEvent(obj,ev) + self.reDO = True def clear(self): if self.renWin is None: #Nothing to clear From 2dc09470cd046866bddb13421672e374efea79f2 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Tue, 18 Nov 2014 14:19:14 -0800 Subject: [PATCH 04/10] ok not quite there... no left click segfaults --- Packages/vcs/Lib/VTKPlots.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 78e74bde5f..3ad8d014d7 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -29,7 +29,7 @@ def __init__(self,parent): self.AddObserver( "ModifiedEvent", parent.configureEvent ) self.AddObserver( "ConfigureEvent", parent.configureEvent ) self.AddObserver( "RenderEvent", parent.renderEvent ) - self.AddObserver( "AnyEvent",parent.stdEvent) + #self.AddObserver( "AnyEvent",parent.stdEvent) class VTKVCSBackend(object): def __init__(self,canvas,renWin=None, debug=False,bg=None): @@ -71,7 +71,7 @@ def interact(self,*args,**kargs): self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) - self.renWin.AddObserver( "AnyEvent",self.stdEvent) + #self.renWin.AddObserver( "AnyEvent",self.stdEvent) self.renWin.AddObserver( "EndEvent",self.endEvent) if interactor is None: warnings.warn("Cannot start interaction. Blank plot?") @@ -90,13 +90,13 @@ def endEvent(self,obj,event): def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller window_size = renwin.GetSize() - print "Yes we are herE",window_size,self.renderWindowSize + #print "Yes we are herE",window_size,self.renderWindowSize if ( window_size <> self.renderWindowSize ): self.configureEvent(caller,evt) self.renderWindowSize = window_size def leftButtonPressEvent(self,obj,event): - print "We do come here" + #print "We do come here" xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() x = float(xy[0])/sz[0] @@ -182,7 +182,6 @@ def leftButtonReleaseEvent(self,obj,event): def configureEvent(self,obj,ev): sz = self.renWin.GetSize() - print "Conf:",sz,self._lastSize if self._lastSize == sz: # or (self._lastSize is None and hasattr(self,"fromVistrails")): # We really only care about resize event # this is mainly to avoid segfault vwith Vistraisl which does From 72dcdc9238ce553ab18d3fc6b39487967e696a0b Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Tue, 18 Nov 2014 14:27:32 -0800 Subject: [PATCH 05/10] ok works on Mac --- Packages/vcs/Lib/VTKPlots.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 3ad8d014d7..f1a33af046 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -52,6 +52,7 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): self.createDefaultInteractor() self.logo = None self.reDO = False + self._leftPressed = False # def applicationFocusChanged(self): # for plotApp in self.plotApps.values(): @@ -67,10 +68,10 @@ def interact(self,*args,**kargs): return interactor = self.renWin.GetInteractor() self.renWin.AddObserver( "RenderEvent", self.renderEvent ) - self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) - self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) - self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) - self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) + #self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) + #self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) + #self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) + #self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) #self.renWin.AddObserver( "AnyEvent",self.stdEvent) self.renWin.AddObserver( "EndEvent",self.endEvent) if interactor is None: @@ -83,8 +84,9 @@ def stdEvent(self,caller,evt): print evt def endEvent(self,obj,event): if self.renWin is not None: - if self.reDO: + if self.reDO and not self._leftPressed: self.reDO = False + self._lastSize = None self.renWin.Render() def renderEvent(self,caller,evt): @@ -97,6 +99,7 @@ def renderEvent(self,caller,evt): def leftButtonPressEvent(self,obj,event): #print "We do come here" + self._leftPressed = True xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() x = float(xy[0])/sz[0] @@ -174,7 +177,7 @@ def leftButtonPressEvent(self,obj,event): self.renWin.Render() def leftButtonReleaseEvent(self,obj,event): - self._lastSize = None + #print "releasing" self.clickRenderer.RemoveAllViewProps() self.clickRenderer.Render() self.renWin.RemoveRenderer(self.clickRenderer) @@ -189,6 +192,7 @@ def configureEvent(self,obj,ev): if self.renWin is not None: self.renWin.Render() return + #print "configuring" self._lastSize = sz plots_args = [] key_args =[] From 07f06a737063c2580007c2c834422b282d77297a Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Tue, 18 Nov 2014 14:40:21 -0800 Subject: [PATCH 06/10] rendering the clickrenderer seg fault on mac if clicked before and resize, commenting out fixes it --- Packages/vcs/Lib/VTKPlots.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 31c122d34a..f9ac0993f4 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -72,7 +72,7 @@ def interact(self,*args,**kargs): #self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) #self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) #self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) - #self.renWin.AddObserver( "AnyEvent",self.stdEvent) + self.renWin.AddObserver( "AnyEvent",self.stdEvent) self.renWin.AddObserver( "EndEvent",self.endEvent) if interactor is None: warnings.warn("Cannot start interaction. Blank plot?") @@ -84,10 +84,13 @@ def stdEvent(self,caller,evt): print evt def endEvent(self,obj,event): if self.renWin is not None: - if self.reDO and not self._leftPressed: + print "yep end envent" + if self.reDO: self.reDO = False self._lastSize = None + print "Ok we are triggering that crap" self.renWin.Render() + print "processed" def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller @@ -177,9 +180,10 @@ def leftButtonPressEvent(self,obj,event): self.renWin.Render() def leftButtonReleaseEvent(self,obj,event): - #print "releasing" self.clickRenderer.RemoveAllViewProps() - self.clickRenderer.Render() + # The following seg fault on Mac if clicking before resizing the window + # commenting out + #self.clickRenderer.Render() self.renWin.RemoveRenderer(self.clickRenderer) self.renWin.Render() From 5df8c14483e9f8f4510f731be1b7d4ed4fa7fedd Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Tue, 18 Nov 2014 15:03:31 -0800 Subject: [PATCH 07/10] works on Linux now --- Packages/vcs/Lib/VTKPlots.py | 37 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index f9ac0993f4..3e0d3fb93d 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -28,7 +28,8 @@ def __init__(self,parent): self.AddObserver("LeftButtonReleaseEvent", parent.leftButtonReleaseEvent ) self.AddObserver( "ModifiedEvent", parent.configureEvent ) self.AddObserver( "ConfigureEvent", parent.configureEvent ) - self.AddObserver( "RenderEvent", parent.renderEvent ) + if sys.platform == "darwin": + self.AddObserver( "RenderEvent", parent.renderEvent ) #self.AddObserver( "AnyEvent",parent.stdEvent) class VTKVCSBackend(object): @@ -51,8 +52,8 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): if renWin.GetInteractor() is None and self.bg is False: self.createDefaultInteractor() self.logo = None - self.reDO = False - self._leftPressed = False + if sys.platform == "darwin": + self.reDO = False # def applicationFocusChanged(self): # for plotApp in self.plotApps.values(): @@ -67,13 +68,14 @@ def interact(self,*args,**kargs): warnings.warn("Cannot interact if you did not open the canvas yet") return interactor = self.renWin.GetInteractor() - self.renWin.AddObserver( "RenderEvent", self.renderEvent ) - #self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) - #self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) - #self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) - #self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) - self.renWin.AddObserver( "AnyEvent",self.stdEvent) - self.renWin.AddObserver( "EndEvent",self.endEvent) + if sys.platform == "darwin": + self.renWin.AddObserver( "RenderEvent", self.renderEvent ) + self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) + self.renWin.AddObserver("LeftButtonReleaseEvent", self.leftButtonReleaseEvent ) + self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) + self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) + self.renWin.AddObserver( "EndEvent",self.endEvent) + #self.renWin.AddObserver( "AnyEvent",self.stdEvent) if interactor is None: warnings.warn("Cannot start interaction. Blank plot?") return @@ -84,13 +86,10 @@ def stdEvent(self,caller,evt): print evt def endEvent(self,obj,event): if self.renWin is not None: - print "yep end envent" if self.reDO: self.reDO = False self._lastSize = None - print "Ok we are triggering that crap" self.renWin.Render() - print "processed" def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller @@ -193,7 +192,7 @@ def configureEvent(self,obj,ev): # We really only care about resize event # this is mainly to avoid segfault vwith Vistraisl which does # not catch configure Events but only modifiedEvents.... - if self.renWin is not None: + if self.renWin is not None and sys.platform == "darwin": self.renWin.Render() return #print "configuring" @@ -221,14 +220,10 @@ def configureEvent(self,obj,ev): self.createLogo() if self.renWin.GetSize()!=(0,0): self.scaleLogo() - if self.renWin is not None: + if self.renWin is not None and sys.platform == "darwin": self.renWin.Render() - #iren = self.renWin.GetInteractor() - #if iren is not None: - # iren.InvokeEvent(vtk.vtkCommand.LeftButtonPressEvent) - # iren.InvokeEvent(vtk.vtkCommand.LeftButtonReleaseEvent) - # self.configureEvent(obj,ev) - self.reDO = True + if sys.platform == "darwin": + self.reDO = True def clear(self): if self.renWin is None: #Nothing to clear From fd3f8ec07d622716fad916473cca3e0f6f53cd13 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Thu, 20 Nov 2014 09:58:54 -0800 Subject: [PATCH 08/10] @dlonie suggested changes --- Packages/vcs/Lib/VTKPlots.py | 42 ++++++++---------------------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 3e0d3fb93d..62fdbbd822 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -30,7 +30,6 @@ def __init__(self,parent): self.AddObserver( "ConfigureEvent", parent.configureEvent ) if sys.platform == "darwin": self.AddObserver( "RenderEvent", parent.renderEvent ) - #self.AddObserver( "AnyEvent",parent.stdEvent) class VTKVCSBackend(object): def __init__(self,canvas,renWin=None, debug=False,bg=None): @@ -53,11 +52,7 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): self.createDefaultInteractor() self.logo = None if sys.platform == "darwin": - self.reDO = False - -# def applicationFocusChanged(self): -# for plotApp in self.plotApps.values(): -# if hasattr(plotApp, 'refresh'): plotApp.refresh() + self.reRender = False def setAnimationStepper( self, stepper ): for plot in self.plotApps.values(): @@ -68,6 +63,9 @@ def interact(self,*args,**kargs): warnings.warn("Cannot interact if you did not open the canvas yet") return interactor = self.renWin.GetInteractor() + ## Mac seems to handle events a bit differently + ## Need to add observers on renWin + ## Linux is fine w/o it so no need to do it if sys.platform == "darwin": self.renWin.AddObserver( "RenderEvent", self.renderEvent ) self.renWin.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent ) @@ -75,7 +73,6 @@ def interact(self,*args,**kargs): self.renWin.AddObserver( "ModifiedEvent", self.configureEvent ) self.renWin.AddObserver( "ConfigureEvent", self.configureEvent ) self.renWin.AddObserver( "EndEvent",self.endEvent) - #self.renWin.AddObserver( "AnyEvent",self.stdEvent) if interactor is None: warnings.warn("Cannot start interaction. Blank plot?") return @@ -86,21 +83,19 @@ def stdEvent(self,caller,evt): print evt def endEvent(self,obj,event): if self.renWin is not None: - if self.reDO: - self.reDO = False + if self.reRender: + self.reRender = False self._lastSize = None self.renWin.Render() def renderEvent(self,caller,evt): renwin = self.renWin if (caller == None) else caller window_size = renwin.GetSize() - #print "Yes we are herE",window_size,self.renderWindowSize if ( window_size <> self.renderWindowSize ): self.configureEvent(caller,evt) self.renderWindowSize = window_size def leftButtonPressEvent(self,obj,event): - #print "We do come here" self._leftPressed = True xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() @@ -180,22 +175,18 @@ def leftButtonPressEvent(self,obj,event): def leftButtonReleaseEvent(self,obj,event): self.clickRenderer.RemoveAllViewProps() - # The following seg fault on Mac if clicking before resizing the window - # commenting out - #self.clickRenderer.Render() self.renWin.RemoveRenderer(self.clickRenderer) self.renWin.Render() def configureEvent(self,obj,ev): sz = self.renWin.GetSize() - if self._lastSize == sz: # or (self._lastSize is None and hasattr(self,"fromVistrails")): + if self._lastSize == sz: # We really only care about resize event # this is mainly to avoid segfault vwith Vistraisl which does # not catch configure Events but only modifiedEvents.... if self.renWin is not None and sys.platform == "darwin": self.renWin.Render() return - #print "configuring" self._lastSize = sz plots_args = [] key_args =[] @@ -223,14 +214,13 @@ def configureEvent(self,obj,ev): if self.renWin is not None and sys.platform == "darwin": self.renWin.Render() if sys.platform == "darwin": - self.reDO = True + ## ON mac somehow we need to issue an extra Render after resize + self.reRender = True def clear(self): if self.renWin is None: #Nothing to clear return renderers = self.renWin.GetRenderers() -# plot_renderers = [ id(g.plot.renderer) for g in self.plotApps.values() ] -# print " ------------------------------------ ------------------------------------ CLEAR: %s ------------------------------------ ------------------------------------ " % str( plot_renderers ) renderers.InitTraversal() ren = renderers.GetNextItem() hasValidRenderer = True if ren is not None else False @@ -247,7 +237,6 @@ def clear(self): def createDefaultInteractor( self, ren=None ): defaultInteractor = self.renWin.GetInteractor() if defaultInteractor is None: - #defaultInteractor = vtk.vtkGenericRenderWindowInteractor() defaultInteractor = vtk.vtkRenderWindowInteractor() self.vcsInteractorStyle = VCSInteractorStyle(self) if ren: @@ -353,7 +342,6 @@ def close(self): self.renWin = None def geometry(self,x,y,*args): - #screenSize = self.renWin.GetScreenSize() self.renWin.SetSize(x,y) def flush(self): @@ -374,8 +362,6 @@ def plot(self,data1,data2,template,gtype,gname,bg,*args,**kargs): self.renWin.SetOffScreenRendering(True) self.renWin.SetSize(self.canvas.bgX,self.canvas.bgY) self.cell_coordinates=kargs.get( 'cell_coordinates', None ) - #self.renWin.Render() - #screenSize = self.renWin.GetScreenSize() if gtype == "text": tt,to = gname.split(":::") tt = vcs.elements["texttable"][tt] @@ -692,13 +678,6 @@ def plotVector(self,data1,data2,tmpl,gm): glyphFilter.SetInputArrayToProcess(1,0,0,0,"vectors") glyphFilter.SetScaleFactor(2.*gm.scale) - #if cellData: - # if ug.IsA("vtkUnstructuredGrid"): - # glyphFilter.SetInputConnection(cln.GetOutputPort()) - # else: - # glyphFilter.SetInputConnection(c2p.GetOutputPort()) - #else: - # glyphFilter.SetInputData(ug) glyphFilter.SetInputData(ug) mapper = vtk.vtkPolyDataMapper() @@ -918,7 +897,6 @@ def plot2D(self,data1,data2,tmpl,gm): for j,color in enumerate(COLS[i]): r,g,b = cmap.index[color] lut.SetTableValue(j,r/100.,g/100.,b/100.) - #print l[j],vcs.colors.rgb2str(r*2.55,g*2.55,b*2.55),l[j+1] mapper.SetLookupTable(lut) mapper.SetScalarRange(0,len(l)-1) mapper.SetScalarModeToUseCellData() @@ -976,8 +954,6 @@ def plot2D(self,data1,data2,tmpl,gm): for k in legend.keys(): legend[float(numpy.ma.log10(legend[k]))] = legend[k] del(legend[k]) - #dx = (levs[-1]-levs[0])/(gm.color_2-gm.color_1+1) - #levs = numpy.arange(levs[0],levs[-1]+dx,dx) cols = range(gm.color_1,gm.color_2+1) else: From e5bdefa4bf84f1c092da4019579be8d49b88b730 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Thu, 20 Nov 2014 10:13:39 -0800 Subject: [PATCH 09/10] ok got all (?) of @dlonie things --- Packages/vcs/Lib/VTKPlots.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 62fdbbd822..4097e086f0 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -43,7 +43,6 @@ def __init__(self,canvas,renWin=None, debug=False,bg=None): self.plotRenderers = set() self.renderer = None self._plot_keywords = ['renderer',] - self.numberOfPlotCalls = 0 self.numberOfPlotCalls = 0 self.renderWindowSize=None if renWin is not None: @@ -79,8 +78,6 @@ def interact(self,*args,**kargs): warnings.warn("Press 'Q' to exit interactive mode and continue script execution") interactor.Start() - def stdEvent(self,caller,evt): - print evt def endEvent(self,obj,event): if self.renWin is not None: if self.reRender: From 11fde7da872ebdcdd4b7f6649cf93bce79d214d5 Mon Sep 17 00:00:00 2001 From: Charles Doutriaux Date: Thu, 20 Nov 2014 10:16:02 -0800 Subject: [PATCH 10/10] removed a var that I created while trying some other method. Not needed --- Packages/vcs/Lib/VTKPlots.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Packages/vcs/Lib/VTKPlots.py b/Packages/vcs/Lib/VTKPlots.py index 4097e086f0..b926800758 100644 --- a/Packages/vcs/Lib/VTKPlots.py +++ b/Packages/vcs/Lib/VTKPlots.py @@ -93,7 +93,6 @@ def renderEvent(self,caller,evt): self.renderWindowSize = window_size def leftButtonPressEvent(self,obj,event): - self._leftPressed = True xy = self.renWin.GetInteractor().GetEventPosition() sz = self.renWin.GetSize() x = float(xy[0])/sz[0]