Commit 0e1a9c34998587415563bfebc5c43fed35a2a8af
1 parent
e7d7870d
Exists in
master
and in
6 other branches
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) |