Commit 0e1a9c34998587415563bfebc5c43fed35a2a8af

Authored by tfmoraes
1 parent e7d7870d

FIX: A keyerror on add a measure

Showing 1 changed file with 11 additions and 30 deletions   Show diff stats
invesalius/data/viewer_slice.py
@@ -1392,6 +1392,8 @@ class Viewer(wx.Panel): @@ -1392,6 +1392,8 @@ class Viewer(wx.Panel):
1392 for actor in self.actors_by_slice_number.get(n, []): 1392 for actor in self.actors_by_slice_number.get(n, []):
1393 renderer.RemoveActor(actor) 1393 renderer.RemoveActor(actor)
1394 1394
  1395 + self.renderers_by_slice_number = {}
  1396 +
1395 for n, slice_data in enumerate(self.slice_data_list): 1397 for n, slice_data in enumerate(self.slice_data_list):
1396 ren = slice_data.renderer 1398 ren = slice_data.renderer
1397 actor = slice_data.actor 1399 actor = slice_data.actor
@@ -1456,18 +1458,6 @@ class Viewer(wx.Panel): @@ -1456,18 +1458,6 @@ class Viewer(wx.Panel):
1456 self.pick.Pick(x, y, 0, render) 1458 self.pick.Pick(x, y, 0, render)
1457 x, y, z = self.pick.GetPickPosition() 1459 x, y, z = self.pick.GetPickPosition()
1458 if self.pick.GetViewProp(): 1460 if self.pick.GetViewProp():
1459 - print "Hey, you inserted measure point"  
1460 - # if not self.measures or self.measures[-1][1].IsComplete():  
1461 - # m = measures.LinearMeasure(render)  
1462 - # m.AddPoint(x, y, z)  
1463 - # self.measures.append((slice_number, m))  
1464 - # else:  
1465 - # m = self.measures[-1][1]  
1466 - # m.AddPoint(x, y, z)  
1467 - # if m.IsComplete():  
1468 - # ps.Publisher().sendMessage("Add measure to list",  
1469 - # (ORIENTATIONS[self.orientation],  
1470 - # _(u"%.3f mm" % m.GetValue())))  
1471 self.render_to_add = slice_data.renderer 1461 self.render_to_add = slice_data.renderer
1472 ps.Publisher().sendMessage("Add measurement point", 1462 ps.Publisher().sendMessage("Add measurement point",
1473 ((x, y,z), const.LINEAR, ORIENTATIONS[self.orientation], 1463 ((x, y,z), const.LINEAR, ORIENTATIONS[self.orientation],
@@ -1475,7 +1465,6 @@ class Viewer(wx.Panel): @@ -1475,7 +1465,6 @@ class Viewer(wx.Panel):
1475 self.interactor.Render() 1465 self.interactor.Render()
1476 1466
1477 def OnInsertAngularMeasurePoint(self, obj, evt): 1467 def OnInsertAngularMeasurePoint(self, obj, evt):
1478 - print "Hey, you inserted a angular point"  
1479 x,y = self.interactor.GetEventPosition() 1468 x,y = self.interactor.GetEventPosition()
1480 render = self.interactor.FindPokedRenderer(x, y) 1469 render = self.interactor.FindPokedRenderer(x, y)
1481 slice_data = self.get_slice_data(render) 1470 slice_data = self.get_slice_data(render)
@@ -1483,17 +1472,6 @@ class Viewer(wx.Panel): @@ -1483,17 +1472,6 @@ class Viewer(wx.Panel):
1483 self.pick.Pick(x, y, 0, render) 1472 self.pick.Pick(x, y, 0, render)
1484 x, y, z = self.pick.GetPickPosition() 1473 x, y, z = self.pick.GetPickPosition()
1485 if self.pick.GetViewProp(): 1474 if self.pick.GetViewProp():
1486 - # if not self.measures or self.measures[-1][1].IsComplete():  
1487 - # m = measures.AngularMeasure(render)  
1488 - # m.AddPoint(x, y, z)  
1489 - # self.measures.append((slice_number, m))  
1490 - # else:  
1491 - # m = self.measures[-1][1]  
1492 - # m.AddPoint(x, y, z)  
1493 - # if m.IsComplete():  
1494 - # ps.Publisher().sendMessage("Add measure to list",  
1495 - # (ORIENTATIONS[self.orientation],  
1496 - # _(u"%.3fº" % m.GetValue())))  
1497 self.render_to_add = slice_data.renderer 1475 self.render_to_add = slice_data.renderer
1498 ps.Publisher().sendMessage("Add measurement point", 1476 ps.Publisher().sendMessage("Add measurement point",
1499 ((x, y,z), const.ANGULAR, ORIENTATIONS[self.orientation], 1477 ((x, y,z), const.ANGULAR, ORIENTATIONS[self.orientation],
@@ -1503,9 +1481,12 @@ class Viewer(wx.Panel): @@ -1503,9 +1481,12 @@ class Viewer(wx.Panel):
1503 def AddActors(self, pubsub_evt): 1481 def AddActors(self, pubsub_evt):
1504 "Inserting actors" 1482 "Inserting actors"
1505 actors, n = pubsub_evt.data 1483 actors, n = pubsub_evt.data
1506 - renderer = self.renderers_by_slice_number[n]  
1507 - for actor in actors:  
1508 - renderer.AddActor(actor) 1484 + try:
  1485 + renderer = self.renderers_by_slice_number[n]
  1486 + for actor in actors:
  1487 + renderer.AddActor(actor)
  1488 + except KeyError:
  1489 + pass
1509 try: 1490 try:
1510 self.actors_by_slice_number[n].extend(actors) 1491 self.actors_by_slice_number[n].extend(actors)
1511 except KeyError: 1492 except KeyError:
@@ -1513,10 +1494,10 @@ class Viewer(wx.Panel): @@ -1513,10 +1494,10 @@ class Viewer(wx.Panel):
1513 1494
1514 def RemoveActors(self, pubsub_evt): 1495 def RemoveActors(self, pubsub_evt):
1515 "Remove a list of actors" 1496 "Remove a list of actors"
1516 - actors, n = pubsub_evt.data[0] 1497 + actors, n = pubsub_evt.data
1517 renderer = self.renderers_by_slice_number[n] 1498 renderer = self.renderers_by_slice_number[n]
1518 for actor in actors: 1499 for actor in actors:
1519 # Remove the actor from the renderer 1500 # Remove the actor from the renderer
1520 - self.renderer.RemoveActor(actor) 1501 + renderer.RemoveActor(actor)
1521 # and remove the actor from the actor's list 1502 # and remove the actor from the actor's list
1522 - self.actors_by_slice_number.remove(actor) 1503 + self.actors_by_slice_number[n].remove(actor)