Skip to content

Commit

Permalink
fix(remote rendering): round view size half up
Browse files Browse the repository at this point in the history
comply with vue-vtk-js vtkRemoteView implementation which uses Math.round for
setting view size. python builtin round function does not work the same
way: it rounds half to even.
  • Loading branch information
bourdaisj authored and jourdain committed May 2, 2024
1 parent b399cc9 commit e6777b9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
12 changes: 7 additions & 5 deletions trame_vtk/modules/paraview/protocols/publish_image_delivery.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ def push_render(self, v_id, ignore_animation=False, stale_count=0):
if "originalSize" not in self.tracking_views[v_id]:
view = self.get_view(v_id)
self.tracking_views[v_id]["originalSize"] = (
int(view.ViewSize[0]),
int(view.ViewSize[1]),
int(view.ViewSize[0] + 0.5),
int(view.ViewSize[1] + 0.5),
)

if "ratio" not in self.tracking_views[v_id]:
Expand All @@ -61,7 +61,9 @@ def push_render(self, v_id, ignore_animation=False, stale_count=0):
ratio = self.tracking_views[v_id]["ratio"]
mtime = self.tracking_views[v_id]["mtime"]
quality = self.tracking_views[v_id]["quality"]
size = [int(s * ratio) for s in self.tracking_views[v_id]["originalSize"]]
size = [
int((s * ratio) + 0.5) for s in self.tracking_views[v_id]["originalSize"]
]

reply = self.still_render(
{"view": v_id, "mtime": mtime, "quality": quality, "size": size}
Expand Down Expand Up @@ -412,7 +414,7 @@ def set_view_quality(self, view_id, quality, ratio=1, update_linked_view=True):
# Update image size right now!
if "originalSize" in self.tracking_views[real_view_id]:
size = [
int(s * ratio)
int((s * ratio) + 0.5)
for s in self.tracking_views[real_view_id]["originalSize"]
]
if "SetSize" in s_view:
Expand All @@ -439,7 +441,7 @@ def set_view_size(self, view_id, width, height):
if not observer_info:
return {"error": "Unable to find subscription for view %s" % real_view_id}

observer_info["originalSize"] = (int(width), int(height))
observer_info["originalSize"] = (int(width + 0.5), int(height + 0.5))

return {"result": "success"}

Expand Down
6 changes: 4 additions & 2 deletions trame_vtk/modules/vtk/protocols/publish_image_delivery.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ def push_render(self, v_id, ignore_animation=False):
ratio = self.tracking_views[v_id]["ratio"]
mtime = self.tracking_views[v_id]["mtime"]
quality = self.tracking_views[v_id]["quality"]
size = [int(s * ratio) for s in self.tracking_views[v_id]["originalSize"]]
size = [
int((s * ratio) + 0.5) for s in self.tracking_views[v_id]["originalSize"]
]

reply = self.still_render(
{"view": v_id, "mtime": mtime, "quality": quality, "size": size}
Expand Down Expand Up @@ -291,7 +293,7 @@ def set_view_quality(self, view_id, quality, ratio=1):
# Update image size right now!
if "originalSize" in self.tracking_views[real_view_id]:
size = [
int(s * ratio)
int((s * ratio) + 0.5)
for s in self.tracking_views[real_view_id]["originalSize"]
]
if hasattr(s_view, "SetSize"):
Expand Down

0 comments on commit e6777b9

Please sign in to comment.