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 1392 for actor in self.actors_by_slice_number.get(n, []):
1393 1393 renderer.RemoveActor(actor)
1394 1394  
  1395 + self.renderers_by_slice_number = {}
  1396 +
1395 1397 for n, slice_data in enumerate(self.slice_data_list):
1396 1398 ren = slice_data.renderer
1397 1399 actor = slice_data.actor
... ... @@ -1456,18 +1458,6 @@ class Viewer(wx.Panel):
1456 1458 self.pick.Pick(x, y, 0, render)
1457 1459 x, y, z = self.pick.GetPickPosition()
1458 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 1461 self.render_to_add = slice_data.renderer
1472 1462 ps.Publisher().sendMessage("Add measurement point",
1473 1463 ((x, y,z), const.LINEAR, ORIENTATIONS[self.orientation],
... ... @@ -1475,7 +1465,6 @@ class Viewer(wx.Panel):
1475 1465 self.interactor.Render()
1476 1466  
1477 1467 def OnInsertAngularMeasurePoint(self, obj, evt):
1478   - print "Hey, you inserted a angular point"
1479 1468 x,y = self.interactor.GetEventPosition()
1480 1469 render = self.interactor.FindPokedRenderer(x, y)
1481 1470 slice_data = self.get_slice_data(render)
... ... @@ -1483,17 +1472,6 @@ class Viewer(wx.Panel):
1483 1472 self.pick.Pick(x, y, 0, render)
1484 1473 x, y, z = self.pick.GetPickPosition()
1485 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 1475 self.render_to_add = slice_data.renderer
1498 1476 ps.Publisher().sendMessage("Add measurement point",
1499 1477 ((x, y,z), const.ANGULAR, ORIENTATIONS[self.orientation],
... ... @@ -1503,9 +1481,12 @@ class Viewer(wx.Panel):
1503 1481 def AddActors(self, pubsub_evt):
1504 1482 "Inserting actors"
1505 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 1490 try:
1510 1491 self.actors_by_slice_number[n].extend(actors)
1511 1492 except KeyError:
... ... @@ -1513,10 +1494,10 @@ class Viewer(wx.Panel):
1513 1494  
1514 1495 def RemoveActors(self, pubsub_evt):
1515 1496 "Remove a list of actors"
1516   - actors, n = pubsub_evt.data[0]
  1497 + actors, n = pubsub_evt.data
1517 1498 renderer = self.renderers_by_slice_number[n]
1518 1499 for actor in actors:
1519 1500 # Remove the actor from the renderer
1520   - self.renderer.RemoveActor(actor)
  1501 + renderer.RemoveActor(actor)
1521 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)
... ...