Commit 8e222ec9b46378d7001b2f47f95674fca019fe78

Authored by Paulo Henrique Junqueira Amorim
1 parent f9eb4d86

ENH: Conflict state window and level with zoom in the volume

Showing 1 changed file with 12 additions and 6 deletions   Show diff stats
invesalius/data/viewer_volume.py
... ... @@ -91,7 +91,12 @@ class Viewer(wx.Panel):
91 91 "MouseMoveEvent": self.OnSpinMove,
92 92 "LeftButtonPressEvent": self.OnSpinClick,
93 93 "LeftButtonReleaseEvent": self.OnReleaseSpinClick,
94   - }
  94 + },
  95 + 'WINDOWLEVEL':{
  96 + "MouseMoveEvent": self.OnWindowLevelMove,
  97 + "LeftButtonPressEvent": self.OnWindowLevelClick,
  98 + "LeftButtonReleaseEvent":self.OnWindowLevelRelease
  99 + }
95 100 }
96 101  
97 102 if (new_mode == 'ZOOMSELECT'):
... ... @@ -149,7 +154,6 @@ class Viewer(wx.Panel):
149 154 evt.EndPan()
150 155  
151 156 def SetNewMode(self, pubsub_evt):
152   - print "__________________________"
153 157 mode = pubsub_evt.topic[1]
154 158  
155 159 if (mode == const.MODE_ZOOM_SELECTION):
... ... @@ -160,8 +164,10 @@ class Viewer(wx.Panel):
160 164 self.SetMode('ZOOM')
161 165 elif(mode == const.MODE_ROTATE):
162 166 self.SetMode('SPIN')
  167 + elif(mode == const.MODE_WW_WL):
  168 + self.SetMode('WINDOWLEVEL')
163 169  
164   - def OnMove(self, obj, evt):
  170 + def OnWindowLevelMove(self, obj, evt):
165 171 if self.onclick and self.raycasting_volume:
166 172 mouse_x, mouse_y = self.interactor.GetEventPosition()
167 173 diff_x = mouse_x - self.last_x
... ... @@ -172,12 +178,12 @@ class Viewer(wx.Panel):
172 178 ps.Publisher().sendMessage('Refresh raycasting widget points', None)
173 179 self.interactor.Render()
174 180  
175   - def OnClick(self, obj, evt):
  181 + def OnWindowLevelClick(self, obj, evt):
176 182 self.onclick = True
177 183 mouse_x, mouse_y = self.interactor.GetEventPosition()
178 184 self.last_x, self.last_y = mouse_x, mouse_y
179 185  
180   - def OnRelease(self, obj, evt):
  186 + def OnWindowLevelRelease(self, obj, evt):
181 187 self.onclick = False
182 188  
183 189  
... ... @@ -241,7 +247,7 @@ class Viewer(wx.Panel):
241 247 ps.Publisher().subscribe(self.OnSetViewAngle,
242 248 'Set volume view angle')
243 249  
244   - ps.Publisher().subscribe(self.OnEnableBrightContrast,
  250 + ps.Publisher().subscribe(self.SetNewMode,
245 251 ('Set interaction mode', const.MODE_WW_WL))
246 252 ps.Publisher().subscribe(self.OnDisableBrightContrast,
247 253 ('Set interaction mode',
... ...