Skip to content

Commit

Permalink
Issue #222: Tidy VTKOverlayWindow and fix unit tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
MattClarkson committed Feb 17, 2024
1 parent 7fdccdf commit 8d31925
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 53 deletions.
64 changes: 16 additions & 48 deletions sksurgeryvtk/widgets/vtk_overlay_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,26 +515,9 @@ def add_vtk_models(self, models, layer=1):
that is a vtkActor.
:param models: list of VTK models.
:param layer: Render layer to add to, default 1 (forground)
:param layer: [1|3|4]. Render layer to add to, default 1.
"""

if layer == 0:
raise ValueError("You shouldn't add actors to the background video.")

if layer == 1:
renderer = self.layer_1_renderer

elif layer == 2:
raise ValueError("You shouldn't add actors to the midground video.")

elif layer == 3:
renderer = self.layer_3_renderer

elif layer == 4:
renderer = self.layer_4_renderer

else:
raise ValueError("Invalid layer specified")
renderer = self.get_foreground_renderer(layer=layer)

for model in models:
renderer.AddActor(model.actor)
Expand All @@ -549,26 +532,9 @@ def add_vtk_actor(self, actor, layer=1):
Add a vtkActor directly.
:param actor: vtkActor
:param layer: Render layer to add to, default 1 (foreground)
:param layer: [1|3|4]. Render layer to add to, default 1.
"""

if layer == 0:
raise ValueError("You shouldn't add actors to the background video.")

if layer == 1:
renderer = self.layer_1_renderer

elif layer == 2:
raise ValueError("You shouldn't add actors to the midground video.")

elif layer == 3:
renderer = self.layer_3_renderer

elif layer == 4:
renderer = self.layer_4_renderer

else:
raise ValueError("Invalid layer specified")
renderer = self.get_foreground_renderer(layer=layer)

renderer.AddActor(actor)

Expand All @@ -577,26 +543,28 @@ def add_vtk_actor(self, actor, layer=1):

def get_background_image_actor(self, layer=0):
"""
Returns one of the background video layers, depending on
the constructor arguments. So, either layer 0 or 2.
Returns one of the background video image actors.
:param layer: [0|2]. Index of image actor. Default 0.
"""
if layer == 0:
return self.layer_0_image_actor
if layer == 1:
raise ValueError("Layer 1 is not a background renderer.")
raise ValueError("Layer 1 is not a background actor.")
if layer == 2:
return self.layer_2_image_actor
if layer == 3:
raise ValueError("Layer 3 is not a background renderer.")
raise ValueError("Layer 3 is not a background actor.")
if layer == 4:
raise ValueError("Layer 3 is not a background renderer.")
raise ValueError("Layer 4 is not a background actor.")

raise ValueError("Didn't find background renderer.")
raise ValueError("Didn't find background actor.")

def get_background_renderer(self, layer=0):
"""
Returns one of the background video layers, depending on
the constructor arguments. So, either layer 0 or 2.
Returns one of the background video layers.
:param layer: [0|2]. Index of background image renderer. Default 0.
"""
if layer == 0:
return self.layer_0_renderer
Expand All @@ -607,7 +575,7 @@ def get_background_renderer(self, layer=0):
if layer == 3:
raise ValueError("Layer 3 is not a background renderer.")
if layer == 4:
raise ValueError("Layer 3 is not a background renderer.")
raise ValueError("Layer 4 is not a background renderer.")

raise ValueError("Didn't find background renderer.")

Expand All @@ -627,7 +595,7 @@ def get_foreground_renderer(self, layer=1):
if layer == 3:
return self.layer_3_renderer
if layer == 4:
raise ValueError("Layer 4 is only for annotations like text.")
return self.layer_4_renderer

raise ValueError(f"Invalid layer specification:{layer}")

Expand Down
10 changes: 5 additions & 5 deletions tests/widgets/test_vtk_overlay_window_5_layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def test_overlay_window_video_2(setup_vtk_overlay_window_video_only_layer_2):
vtk_overlay.show()
vtk_overlay.Render()

bg_ren = vtk_overlay.get_background_renderer()
bg_ren = vtk_overlay.get_background_renderer(layer=2)
assert bg_ren == vtk_overlay.layer_2_renderer

fg_ren = vtk_overlay.get_foreground_renderer()
Expand Down Expand Up @@ -180,15 +180,15 @@ def test_overlay_window_video_both(setup_vtk_overlay_window_video_both_layer_0_a
fg_ren = vtk_overlay.get_foreground_renderer(layer=3)
assert fg_ren == vtk_overlay.layer_3_renderer

fg_ren = vtk_overlay.get_foreground_renderer(layer=4)
assert fg_ren == vtk_overlay.layer_4_renderer

with pytest.raises(ValueError):
fg_ren = vtk_overlay.get_foreground_renderer(layer=0)

with pytest.raises(ValueError):
fg_ren = vtk_overlay.get_foreground_renderer(layer=2)

with pytest.raises(ValueError):
fg_ren = vtk_overlay.get_foreground_renderer(layer=4)

with pytest.raises(ValueError):
fg_ren = vtk_overlay.get_foreground_renderer(layer=5)

Expand Down Expand Up @@ -223,7 +223,7 @@ def test_overlay_window_combined_ar_look(setup_vtk_overlay_window_video_only_lay
vtk_overlay.show()
vtk_overlay.Render()

bg_ren = vtk_overlay.get_background_renderer()
bg_ren = vtk_overlay.get_background_renderer(layer=2)
assert bg_ren == vtk_overlay.layer_2_renderer

fg_ren = vtk_overlay.get_foreground_renderer(layer=1)
Expand Down

0 comments on commit 8d31925

Please sign in to comment.