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 | 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) | ... | ... |