diff --git a/requirements.in b/requirements.in index c7dfbb5..82f4c74 100644 --- a/requirements.in +++ b/requirements.in @@ -1,3 +1,3 @@ +wslink<2 fastjsonschema -wslink websocket-client \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 07fda19..c4d360d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,30 +1,42 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile requirements.in # -aiohttp==3.9.3 +aiohappyeyeballs==2.6.1 + # via aiohttp +aiohttp==3.12.14 # via wslink -aiosignal==1.3.1 +aiosignal==1.4.0 + # via aiohttp +async-timeout==5.0.1 # via aiohttp -attrs==23.2.0 +attrs==25.3.0 # via aiohttp fastjsonschema==2.21.1 # via -r requirements.in -frozenlist==1.4.1 +frozenlist==1.7.0 # via # aiohttp # aiosignal -idna==3.6 +idna==3.10 # via yarl -multidict==6.0.5 +multidict==6.6.3 # via # aiohttp # yarl -websocket-client==1.7.0 +propcache==0.3.2 + # via + # aiohttp + # yarl +typing-extensions==4.14.1 + # via + # aiosignal + # multidict +websocket-client==1.8.0 # via -r requirements.in wslink==1.12.4 # via -r requirements.in -yarl==1.9.4 +yarl==1.20.1 # via aiohttp diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json index d5b0bcb..9ec88df 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.json @@ -3,7 +3,8 @@ "type": "object", "properties": { "z_scale": { - "type": "number" + "type": "number", + "minimum": 1 } }, "required": [ diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index d50983d..df05f23 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -238,8 +238,9 @@ def toggleGridScale(self, params): params, self.viewer_schemas_dict["grid_scale"], self.viewer_prefix ) id, visibility = "grid_scale", params["visibility"] - actor = self.get_object(id)["actor"] - actor.SetVisibility(visibility) + if "grid_scale" in self.get_data_base(): + actor = self.get_object(id)["actor"] + actor.SetVisibility(visibility) self.render() @exportRpc(viewer_prefix + viewer_schemas_dict["axes"]["rpc"]) @@ -281,19 +282,18 @@ def renderNow(self, params): @exportRpc(viewer_prefix + viewer_schemas_dict["set_z_scaling"]["rpc"]) def setZScaling(self, params): - validate_schema( params, self.viewer_schemas_dict["set_z_scaling"], self.viewer_prefix ) z_scale = params["z_scale"] - renderWindow = self.getView("-1") renderer = renderWindow.GetRenderers().GetFirstRenderer() - - actors = renderer.GetActors() - - for actor in actors: - transform = vtkTransform() - transform.Scale(1, 1, z_scale) - actor.SetUserTransform(transform) + cam = renderer.GetActiveCamera() + transform = vtk.vtkTransform() + transform.Scale(1, 1, z_scale) + cam.SetModelTransformMatrix(transform.GetMatrix()) + + if "grid_scale" in self.get_data_base(): + cube_axes_actor = self.get_object("grid_scale")["actor"] + cube_axes_actor.SetUse2DMode(1) self.render() diff --git a/src/tests/data/images/viewer/combined_scaling_and_grid.jpeg b/src/tests/data/images/viewer/combined_scaling_and_grid.jpeg new file mode 100644 index 0000000..124529e Binary files /dev/null and b/src/tests/data/images/viewer/combined_scaling_and_grid.jpeg differ diff --git a/src/tests/data/images/viewer/scaling_and_grid_color.jpeg b/src/tests/data/images/viewer/scaling_and_grid_color.jpeg new file mode 100644 index 0000000..85df749 Binary files /dev/null and b/src/tests/data/images/viewer/scaling_and_grid_color.jpeg differ diff --git a/src/tests/test_viewer_protocols.py b/src/tests/test_viewer_protocols.py index 85a6781..262538a 100644 --- a/src/tests/test_viewer_protocols.py +++ b/src/tests/test_viewer_protocols.py @@ -298,3 +298,50 @@ def test_set_z_scaling(server): [{"z_scale": 2.5}], ) assert server.compare_image(3, "viewer/set_z_scaling.jpeg") == True + + +def test_combined_scaling_and_grid(server): + # test_set_z_scaling(server) + + # server.call( + # VtkViewerView.viewer_prefix + # + VtkViewerView.viewer_schemas_dict["set_background_color"]["rpc"], + # [{"color": {"r": 180, "g": 180, "b": 180}}], + # ) + # assert server.compare_image(3, "viewer/scaling_and_grid_color.jpeg") == True + + # server.call( + # VtkViewerView.viewer_prefix + # + VtkViewerView.viewer_schemas_dict["grid_scale"]["rpc"], + # [{"visibility": True}], + # ) + + # assert server.compare_image(3, "viewer/grid_scale_on.jpeg") == True + server.call( + VtkViewerView.viewer_prefix + + VtkViewerView.viewer_schemas_dict["reset_visualization"]["rpc"], + ) + + assert server.compare_image(3, "viewer/reset_visualization.jpeg") == True + + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": "123456789", "file_name": "hat.vtp"}], + ) + assert server.compare_image(3, "viewer/register_hat.jpeg") == True + + server.call( + VtkViewerView.viewer_prefix + + VtkViewerView.viewer_schemas_dict["grid_scale"]["rpc"], + [{"visibility": True}], + ) + + assert server.compare_image(3, "viewer/grid_scale_on.jpeg") == True + + server.call( + VtkViewerView.viewer_prefix + + VtkViewerView.viewer_schemas_dict["set_z_scaling"]["rpc"], + [{"z_scale": 2.5}], + ) + + assert server.compare_image(3, "viewer/combined_scaling_and_grid.jpeg") == True