diff --git a/CHANGELOG.md b/CHANGELOG.md index 290197b..7c26add 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # CHANGELOG +## v1.6.0-rc.1 (2025-03-24) + +### Features + +- **viewer**: Add grid_scale protocol + ([`d610fea`](https://github.com/Geode-solutions/OpenGeodeWeb-Viewer/commit/d610feacc4fe58f85aaca115c5671b272503ad22)) + +- **viewer**: Dynamic grid scale + ([`2c42968`](https://github.com/Geode-solutions/OpenGeodeWeb-Viewer/commit/2c42968136942dce63aeb8bee10ab610706f50be)) + + ## v1.5.0 (2025-03-19) diff --git a/pyproject.toml b/pyproject.toml index 4bfbd14..fe548e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "OpenGeodeWeb-Viewer" -version = "1.5.0" +version = "1.6.0-rc.1" dynamic = ["dependencies"] authors = [ { name="Geode-solutions", email="team-web@geode-solutions.com" }, @@ -41,18 +41,12 @@ where = ["src"] "opengeodeweb_viewer.rpc.mesh.points.schemas" = ["*.json"] "opengeodeweb_viewer.rpc.mesh.edges.schemas" = ["*.json"] "opengeodeweb_viewer.rpc.mesh.polygons.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.mesh.polyhedrons.schemas" = ["*.json"] +"opengeodeweb_viewer.rpc.mesh.polyhedra.schemas" = ["*.json"] "opengeodeweb_viewer.rpc.model.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.corners.points.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.lines.points.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.lines.edges.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.surfaces.points.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.surfaces.edges.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.surfaces.polygons.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.blocks.points.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.blocks.edges.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.blocks.polygons.schemas" = ["*.json"] -"opengeodeweb_viewer.rpc.model.blocks.polyhedrons.schemas" = ["*.json"] +"opengeodeweb_viewer.rpc.model.corners.schemas" = ["*.json"] +"opengeodeweb_viewer.rpc.model.lines.schemas" = ["*.json"] +"opengeodeweb_viewer.rpc.model.surfaces.schemas" = ["*.json"] +"opengeodeweb_viewer.rpc.model.blocks.schemas" = ["*.json"] "opengeodeweb_viewer.rpc.viewer.schemas" = ["*.json"] [tool.semantic_release] diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py new file mode 100644 index 0000000..a805d99 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py @@ -0,0 +1,69 @@ +# Standard library imports +import os + +# Third party imports +from wslink import register as exportRpc + +# Local application imports +from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema +from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView + + +class VtkMeshPolyhedraView(VtkMeshView): + mesh_polyhedra_prefix = "opengeodeweb_viewer.mesh.polyhedra." + mesh_polyhedra_schemas_dict = get_schemas_dict( + os.path.join(os.path.dirname(__file__), "schemas") + ) + + def __init__(self): + super().__init__() + + @exportRpc(mesh_polyhedra_prefix + mesh_polyhedra_schemas_dict["visibility"]["rpc"]) + def setMeshPolyhedraVisibility(self, params): + validate_schema( + params, + self.mesh_polyhedra_schemas_dict["visibility"], + self.mesh_polyhedra_prefix, + ) + id, visibility = params["id"], params["visibility"] + self.SetVisibility(id, visibility) + + @exportRpc(mesh_polyhedra_prefix + mesh_polyhedra_schemas_dict["color"]["rpc"]) + def setMeshPolyhedraColor(self, params): + validate_schema( + params, + self.mesh_polyhedra_schemas_dict["color"], + self.mesh_polyhedra_prefix, + ) + id, red, green, blue = ( + params["id"], + params["color"]["r"], + params["color"]["g"], + params["color"]["b"], + ) + self.SetColor(id, red, green, blue) + + @exportRpc( + mesh_polyhedra_prefix + mesh_polyhedra_schemas_dict["vertex_attribute"]["rpc"] + ) + def setMeshPolyhedraVertexAttribute(self, params): + validate_schema( + params, + self.mesh_polyhedra_schemas_dict["vertex_attribute"], + self.mesh_polyhedra_prefix, + ) + id, name = params["id"], params["name"] + self.displayAttributeOnVertices(id, name) + + @exportRpc( + mesh_polyhedra_prefix + + mesh_polyhedra_schemas_dict["polyhedron_attribute"]["rpc"] + ) + def setMeshPolyhedraPolyhedronAttribute(self, params): + validate_schema( + params, + self.mesh_polyhedra_schemas_dict["polyhedron_attribute"], + self.mesh_polyhedra_prefix, + ) + id, name = params["id"], params["name"] + self.displayAttributeOnCells(id, name) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/color.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/color.json rename to src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.json diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/polyhedron_attribute.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_attribute.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/polyhedron_attribute.json rename to src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_attribute.json diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/vertex_attribute.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_attribute.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/vertex_attribute.json rename to src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_attribute.json diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/visibility.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/polyhedrons/schemas/visibility.json rename to src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.json diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/polyhedrons_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/polyhedrons_protocols.py deleted file mode 100644 index ed99e8d..0000000 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedrons/polyhedrons_protocols.py +++ /dev/null @@ -1,72 +0,0 @@ -# Standard library imports -import os - -# Third party imports -from wslink import register as exportRpc - -# Local application imports -from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema -from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView - - -class VtkMeshPolyhedronsView(VtkMeshView): - mesh_polyhedrons_prefix = "opengeodeweb_viewer.mesh.polyhedrons." - mesh_polyhedrons_schemas_dict = get_schemas_dict( - os.path.join(os.path.dirname(__file__), "schemas") - ) - - def __init__(self): - super().__init__() - - @exportRpc( - mesh_polyhedrons_prefix + mesh_polyhedrons_schemas_dict["visibility"]["rpc"] - ) - def setMeshPolyhedronsVisibility(self, params): - validate_schema( - params, - self.mesh_polyhedrons_schemas_dict["visibility"], - self.mesh_polyhedrons_prefix, - ) - id, visibility = params["id"], params["visibility"] - self.SetVisibility(id, visibility) - - @exportRpc(mesh_polyhedrons_prefix + mesh_polyhedrons_schemas_dict["color"]["rpc"]) - def setMeshPolyhedronsColor(self, params): - validate_schema( - params, - self.mesh_polyhedrons_schemas_dict["color"], - self.mesh_polyhedrons_prefix, - ) - id, red, green, blue = ( - params["id"], - params["color"]["r"], - params["color"]["g"], - params["color"]["b"], - ) - self.SetColor(id, red, green, blue) - - @exportRpc( - mesh_polyhedrons_prefix - + mesh_polyhedrons_schemas_dict["vertex_attribute"]["rpc"] - ) - def setMeshPolyhedronsVertexAttribute(self, params): - validate_schema( - params, - self.mesh_polyhedrons_schemas_dict["vertex_attribute"], - self.mesh_polyhedrons_prefix, - ) - id, name = params["id"], params["name"] - self.displayAttributeOnVertices(id, name) - - @exportRpc( - mesh_polyhedrons_prefix - + mesh_polyhedrons_schemas_dict["polyhedron_attribute"]["rpc"] - ) - def setMeshPolyhedronsPolyhedronAttribute(self, params): - validate_schema( - params, - self.mesh_polyhedrons_schemas_dict["polyhedron_attribute"], - self.mesh_polyhedrons_prefix, - ) - id, name = params["id"], params["name"] - self.displayAttributeOnCells(id, name) diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/blocks_polyhedrons_protocols.py b/src/opengeodeweb_viewer/rpc/model/blocks/blocks_protocols.py similarity index 55% rename from src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/blocks_polyhedrons_protocols.py rename to src/opengeodeweb_viewer/rpc/model/blocks/blocks_protocols.py index 931c992..eee2811 100644 --- a/src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/blocks_polyhedrons_protocols.py +++ b/src/opengeodeweb_viewer/rpc/model/blocks/blocks_protocols.py @@ -9,24 +9,21 @@ from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView -class VtkModelBlocksPolyhedronsView(VtkModelView): - model_blocks_polyhedrons_prefix = "opengeodeweb_viewer.model.blocks.polyhedrons." - model_blocks_polyhedrons_schemas_dict = get_schemas_dict( +class VtkModelBlocksView(VtkModelView): + model_blocks_prefix = "opengeodeweb_viewer.model.blocks." + model_blocks_schemas_dict = get_schemas_dict( os.path.join(os.path.dirname(__file__), "schemas") ) def __init__(self): super().__init__() - @exportRpc( - model_blocks_polyhedrons_prefix - + model_blocks_polyhedrons_schemas_dict["visibility"]["rpc"] - ) - def setModelBlocksPolyhedronsVisibility(self, params): + @exportRpc(model_blocks_prefix + model_blocks_schemas_dict["visibility"]["rpc"]) + def setModelBlocksPolyhedraVisibility(self, params): validate_schema( params, - self.model_blocks_polyhedrons_schemas_dict["visibility"], - self.model_blocks_polyhedrons_prefix, + self.model_blocks_schemas_dict["visibility"], + self.model_blocks_prefix, ) id, block_ids, visibility = ( params["id"], @@ -35,15 +32,12 @@ def setModelBlocksPolyhedronsVisibility(self, params): ) self.SetBlocksVisibility(id, block_ids, visibility) - @exportRpc( - model_blocks_polyhedrons_prefix - + model_blocks_polyhedrons_schemas_dict["color"]["rpc"] - ) - def setModelBlocksPolyhedronsColor(self, params): + @exportRpc(model_blocks_prefix + model_blocks_schemas_dict["color"]["rpc"]) + def setModelBlocksPolyhedraColor(self, params): validate_schema( params, - self.model_blocks_polyhedrons_schemas_dict["color"], - self.model_blocks_polyhedrons_prefix, + self.model_blocks_schemas_dict["color"], + self.model_blocks_prefix, ) id, block_ids, red, green, blue = ( params["id"], diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/schemas/color.json b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/schemas/color.json rename to src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.json diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/schemas/visibility.json b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/blocks/polyhedrons/schemas/visibility.json rename to src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.json diff --git a/src/opengeodeweb_viewer/rpc/model/corners/points/corners_points_protocols.py b/src/opengeodeweb_viewer/rpc/model/corners/corners_protocols.py similarity index 63% rename from src/opengeodeweb_viewer/rpc/model/corners/points/corners_points_protocols.py rename to src/opengeodeweb_viewer/rpc/model/corners/corners_protocols.py index 04b870d..3e0df02 100644 --- a/src/opengeodeweb_viewer/rpc/model/corners/points/corners_points_protocols.py +++ b/src/opengeodeweb_viewer/rpc/model/corners/corners_protocols.py @@ -9,24 +9,21 @@ from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView -class VtkModelCornersPointsView(VtkModelView): - model_corners_points_prefix = "opengeodeweb_viewer.model.corners.points." - model_corners_points_schemas_dict = get_schemas_dict( +class VtkModelCornersView(VtkModelView): + model_corners_prefix = "opengeodeweb_viewer.model.corners." + model_corners_schemas_dict = get_schemas_dict( os.path.join(os.path.dirname(__file__), "schemas") ) def __init__(self): super().__init__() - @exportRpc( - model_corners_points_prefix - + model_corners_points_schemas_dict["visibility"]["rpc"] - ) + @exportRpc(model_corners_prefix + model_corners_schemas_dict["visibility"]["rpc"]) def setModelCornersPointsVisibility(self, params): validate_schema( params, - self.model_corners_points_schemas_dict["visibility"], - self.model_corners_points_prefix, + self.model_corners_schemas_dict["visibility"], + self.model_corners_prefix, ) id, block_ids, visibility = ( params["id"], @@ -35,14 +32,12 @@ def setModelCornersPointsVisibility(self, params): ) self.SetBlocksVisibility(id, block_ids, visibility) - @exportRpc( - model_corners_points_prefix + model_corners_points_schemas_dict["color"]["rpc"] - ) + @exportRpc(model_corners_prefix + model_corners_schemas_dict["color"]["rpc"]) def setModelCornersPointsColor(self, params): validate_schema( params, - self.model_corners_points_schemas_dict["color"], - self.model_corners_points_prefix, + self.model_corners_schemas_dict["color"], + self.model_corners_prefix, ) id, block_ids, red, green, blue = ( params["id"], diff --git a/src/opengeodeweb_viewer/rpc/model/corners/points/schemas/color.json b/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/corners/points/schemas/color.json rename to src/opengeodeweb_viewer/rpc/model/corners/schemas/color.json diff --git a/src/opengeodeweb_viewer/rpc/model/corners/points/schemas/visibility.json b/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/corners/points/schemas/visibility.json rename to src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.json diff --git a/src/opengeodeweb_viewer/rpc/model/lines/edges/lines_edges_protocols.py b/src/opengeodeweb_viewer/rpc/model/lines/lines_protocols.py similarity index 64% rename from src/opengeodeweb_viewer/rpc/model/lines/edges/lines_edges_protocols.py rename to src/opengeodeweb_viewer/rpc/model/lines/lines_protocols.py index dc75cea..afec4e6 100644 --- a/src/opengeodeweb_viewer/rpc/model/lines/edges/lines_edges_protocols.py +++ b/src/opengeodeweb_viewer/rpc/model/lines/lines_protocols.py @@ -9,23 +9,21 @@ from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView -class VtkModelLinesEdgesView(VtkModelView): - model_lines_edges_prefix = "opengeodeweb_viewer.model.lines.edges." - model_lines_edges_schemas_dict = get_schemas_dict( +class VtkModelLinesView(VtkModelView): + model_lines_prefix = "opengeodeweb_viewer.model.lines." + model_lines_schemas_dict = get_schemas_dict( os.path.join(os.path.dirname(__file__), "schemas") ) def __init__(self): super().__init__() - @exportRpc( - model_lines_edges_prefix + model_lines_edges_schemas_dict["visibility"]["rpc"] - ) + @exportRpc(model_lines_prefix + model_lines_schemas_dict["visibility"]["rpc"]) def setModelLinesEdgesVisibility(self, params): validate_schema( params, - self.model_lines_edges_schemas_dict["visibility"], - self.model_lines_edges_prefix, + self.model_lines_schemas_dict["visibility"], + self.model_lines_prefix, ) id, block_ids, visibility = ( params["id"], @@ -34,14 +32,12 @@ def setModelLinesEdgesVisibility(self, params): ) self.SetBlocksVisibility(id, block_ids, visibility) - @exportRpc( - model_lines_edges_prefix + model_lines_edges_schemas_dict["color"]["rpc"] - ) + @exportRpc(model_lines_prefix + model_lines_schemas_dict["color"]["rpc"]) def setModelLinesEdgesColor(self, params): validate_schema( params, - self.model_lines_edges_schemas_dict["color"], - self.model_lines_edges_prefix, + self.model_lines_schemas_dict["color"], + self.model_lines_prefix, ) id, block_ids, red, green, blue = ( params["id"], diff --git a/src/opengeodeweb_viewer/rpc/model/lines/edges/schemas/color.json b/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/lines/edges/schemas/color.json rename to src/opengeodeweb_viewer/rpc/model/lines/schemas/color.json diff --git a/src/opengeodeweb_viewer/rpc/model/lines/edges/schemas/visibility.json b/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/lines/edges/schemas/visibility.json rename to src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.json diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/apply_textures.json b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/apply_textures.json rename to src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.json diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/color.json b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/color.json rename to src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.json diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/visibility.json b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/model/surfaces/polygons/schemas/visibility.json rename to src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.json diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/polygons/surfaces_polygons_protocols.py b/src/opengeodeweb_viewer/rpc/model/surfaces/surfaces_protocols.py similarity index 61% rename from src/opengeodeweb_viewer/rpc/model/surfaces/polygons/surfaces_polygons_protocols.py rename to src/opengeodeweb_viewer/rpc/model/surfaces/surfaces_protocols.py index fc51ac7..1a73e27 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/polygons/surfaces_polygons_protocols.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/surfaces_protocols.py @@ -9,24 +9,21 @@ from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView -class VtkModelSurfacesPolygonsView(VtkModelView): - model_surfaces_polygons_prefix = "opengeodeweb_viewer.model.surfaces.polygons." - model_surfaces_polygons_schemas_dict = get_schemas_dict( +class VtkModelSurfacesView(VtkModelView): + model_surfaces_prefix = "opengeodeweb_viewer.model.surfaces." + model_surfaces_schemas_dict = get_schemas_dict( os.path.join(os.path.dirname(__file__), "schemas") ) def __init__(self): super().__init__() - @exportRpc( - model_surfaces_polygons_prefix - + model_surfaces_polygons_schemas_dict["visibility"]["rpc"] - ) + @exportRpc(model_surfaces_prefix + model_surfaces_schemas_dict["visibility"]["rpc"]) def setModelSurfacesPolygonsVisibility(self, params): validate_schema( params, - self.model_surfaces_polygons_schemas_dict["visibility"], - self.model_surfaces_polygons_prefix, + self.model_surfaces_schemas_dict["visibility"], + self.model_surfaces_prefix, ) id, block_ids, visibility = ( params["id"], @@ -35,15 +32,12 @@ def setModelSurfacesPolygonsVisibility(self, params): ) self.SetBlocksVisibility(id, block_ids, visibility) - @exportRpc( - model_surfaces_polygons_prefix - + model_surfaces_polygons_schemas_dict["color"]["rpc"] - ) + @exportRpc(model_surfaces_prefix + model_surfaces_schemas_dict["color"]["rpc"]) def setModelSurfacesPolygonsCOlor(self, params): validate_schema( params, - self.model_surfaces_polygons_schemas_dict["color"], - self.model_surfaces_polygons_prefix, + self.model_surfaces_schemas_dict["color"], + self.model_surfaces_prefix, ) id, block_ids, red, green, blue = ( params["id"], diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/create_visualization.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/create_visualization.json deleted file mode 100644 index 532d711..0000000 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/create_visualization.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "rpc": "create_visualization", - "type": "object", - "properties": {}, - "required": [], - "additionalProperties": false -} \ No newline at end of file diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json new file mode 100644 index 0000000..e885626 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.json @@ -0,0 +1,13 @@ +{ + "rpc": "grid_scale", + "type": "object", + "properties": { + "visibility": { + "type": "boolean" + } + }, + "required": [ + "visibility" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json index 699ce50..10f89e0 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.json @@ -1,25 +1,25 @@ { - "rpc": "picked_ids", - "type": "object", - "properties": { - "x": { - "type": "number" - }, - "y": { - "type": "number" - }, - "ids": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - }, - "required": [ - "x", - "y", - "ids" - ], - "additionalProperties": false + "rpc": "picked_ids", + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "ids": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + }, + "required": [ + "x", + "y", + "ids" + ], + "additionalProperties": false } \ No newline at end of file diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json similarity index 74% rename from src/opengeodeweb_viewer/rpc/viewer/schemas/reset.json rename to src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json index c1977cb..cfc8ff5 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset.json +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.json @@ -1,5 +1,5 @@ { - "rpc": "reset", + "rpc": "reset_visualization", "type": "object", "properties": {}, "required": [], diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index 2fba8eb..d67450a 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -5,6 +5,7 @@ # Third party imports import vtk from vtkmodules.vtkIOImage import vtkPNGWriter, vtkJPEGWriter +from vtkmodules.vtkRenderingAnnotation import vtkCubeAxesActor from vtkmodules.vtkRenderingCore import vtkWindowToImageFilter from wslink import register as exportRpc @@ -22,14 +23,41 @@ class VtkViewerView(VtkView): def __init__(self): super().__init__() - @exportRpc(viewer_prefix + viewer_schemas_dict["create_visualization"]["rpc"]) - def createVisualization(self, params): + @exportRpc(viewer_prefix + viewer_schemas_dict["reset_visualization"]["rpc"]) + def resetVisualization(self, params): validate_schema( - params, self.viewer_schemas_dict["create_visualization"], self.viewer_prefix + params, self.viewer_schemas_dict["reset_visualization"], self.viewer_prefix ) renderWindow = self.getView("-1") renderer = renderWindow.GetRenderers().GetFirstRenderer() + renderer.RemoveAllViewProps() + + grid_scale = vtkCubeAxesActor() + grid_scale.SetCamera(renderer.GetActiveCamera()) + grid_scale.DrawXGridlinesOn() + grid_scale.DrawYGridlinesOn() + grid_scale.DrawZGridlinesOn() + grid_scale.SetGridLineLocation(grid_scale.VTK_GRID_LINES_FURTHEST) + grid_scale.GetTitleTextProperty(0).SetColor(0, 0, 0) + grid_scale.GetTitleTextProperty(1).SetColor(0, 0, 0) + grid_scale.GetTitleTextProperty(2).SetColor(0, 0, 0) + grid_scale.GetXAxesLinesProperty().SetColor(0, 0, 0) + grid_scale.GetYAxesLinesProperty().SetColor(0, 0, 0) + grid_scale.GetZAxesLinesProperty().SetColor(0, 0, 0) + grid_scale.GetLabelTextProperty(0).SetColor(0, 0, 0) + grid_scale.GetLabelTextProperty(1).SetColor(0, 0, 0) + grid_scale.GetLabelTextProperty(2).SetColor(0, 0, 0) + grid_scale.GetXAxesGridlinesProperty().SetColor(0, 0, 0) + grid_scale.GetYAxesGridlinesProperty().SetColor(0, 0, 0) + grid_scale.GetZAxesGridlinesProperty().SetColor(0, 0, 0) + + grid_scale.SetVisibility(False) + # grid_scale.SetFlyModeToStaticEdges() + self.register_object("grid_scale", "", "", grid_scale, "", "") + + renderer.AddActor(grid_scale) renderer.SetBackground([180 / 255, 180 / 255, 180 / 255]) + renderer.ResetCamera() renderWindow.Render() self.render() @@ -47,7 +75,7 @@ def setBackgroundColor(self, params): renderWindow = self.getView("-1") renderer = renderWindow.GetRenderers().GetFirstRenderer() - renderer.SetBackground([red, green, blue]) + renderer.SetBackground([red / 255, green / 255, blue / 255]) renderer.ResetCamera() renderWindow.Render() self.render() @@ -147,12 +175,6 @@ def getPointPosition(self, params): ppos = picker.GetPickPosition() return {"x": ppos[0], "y": ppos[1], "z": ppos[2]} - @exportRpc(viewer_prefix + viewer_schemas_dict["reset"]["rpc"]) - def reset(self, params): - validate_schema(params, self.viewer_schemas_dict["reset"], self.viewer_prefix) - renderWindow = self.getView("-1") - renderWindow.GetRenderers().GetFirstRenderer().RemoveAllViewProps() - def computeEpsilon(self, renderer, z): renderer.SetDisplayPoint(0, 0, z) renderer.DisplayToWorld() @@ -192,3 +214,13 @@ def pickedIds(self, params): array_ids.append(id) return {"array_ids": array_ids} + + @exportRpc(viewer_prefix + viewer_schemas_dict["grid_scale"]["rpc"]) + def updateData(self, params): + validate_schema( + 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) + self.render() diff --git a/src/opengeodeweb_viewer/vtk_protocol.py b/src/opengeodeweb_viewer/vtk_protocol.py index 292a4ff..d57715e 100644 --- a/src/opengeodeweb_viewer/vtk_protocol.py +++ b/src/opengeodeweb_viewer/vtk_protocol.py @@ -30,6 +30,11 @@ def get_protocol(self, name): return p def render(self, view=-1): + if "grid_scale" in self.get_data_base(): + renderer = self.get_renderer() + renderer_bounds = renderer.ComputeVisiblePropBounds() + grid_scale = self.get_object("grid_scale")["actor"] + grid_scale.SetBounds(renderer_bounds) self.get_protocol("vtkWebPublishImageDelivery").imagePush({"view": view}) def register_object(self, id, reader, filter, actor, mapper, textures): diff --git a/src/opengeodeweb_viewer/vtkw_server.py b/src/opengeodeweb_viewer/vtkw_server.py index da35460..9f967bc 100644 --- a/src/opengeodeweb_viewer/vtkw_server.py +++ b/src/opengeodeweb_viewer/vtkw_server.py @@ -16,19 +16,19 @@ from .rpc.mesh.points.mesh_points_protocols import VtkMeshPointsView from .rpc.mesh.edges.mesh_edges_protocols import VtkMeshEdgesView from .rpc.mesh.polygons.polygons_protocols import VtkMeshPolygonsView -from .rpc.mesh.polyhedrons.polyhedrons_protocols import VtkMeshPolyhedronsView +from .rpc.mesh.polyhedra.polyhedra_protocols import VtkMeshPolyhedraView from .rpc.model.model_protocols import VtkModelView -from .rpc.model.corners.points.corners_points_protocols import ( - VtkModelCornersPointsView, +from .rpc.model.corners.corners_protocols import ( + VtkModelCornersView, ) -from .rpc.model.lines.edges.lines_edges_protocols import ( - VtkModelLinesEdgesView, +from .rpc.model.lines.lines_protocols import ( + VtkModelLinesView, ) -from .rpc.model.surfaces.polygons.surfaces_polygons_protocols import ( - VtkModelSurfacesPolygonsView, +from .rpc.model.surfaces.surfaces_protocols import ( + VtkModelSurfacesView, ) -from .rpc.model.blocks.polyhedrons.blocks_polyhedrons_protocols import ( - VtkModelBlocksPolyhedronsView, +from .rpc.model.blocks.blocks_protocols import ( + VtkModelBlocksView, ) from .rpc.generic.generic_protocols import VtkGenericView @@ -69,18 +69,19 @@ def initialize(self): # Custom API mesh_protocols = VtkMeshView() model_protocols = VtkModelView() - self.registerVtkWebProtocol(VtkView()) + vtk_view = VtkView() + self.registerVtkWebProtocol(vtk_view) self.registerVtkWebProtocol(VtkViewerView()) self.registerVtkWebProtocol(mesh_protocols) self.registerVtkWebProtocol(VtkMeshPointsView()) self.registerVtkWebProtocol(VtkMeshEdgesView()) self.registerVtkWebProtocol(VtkMeshPolygonsView()) - self.registerVtkWebProtocol(VtkMeshPolyhedronsView()) + self.registerVtkWebProtocol(VtkMeshPolyhedraView()) self.registerVtkWebProtocol(model_protocols) - self.registerVtkWebProtocol(VtkModelCornersPointsView()) - self.registerVtkWebProtocol(VtkModelLinesEdgesView()) - self.registerVtkWebProtocol(VtkModelSurfacesPolygonsView()) - self.registerVtkWebProtocol(VtkModelBlocksPolyhedronsView()) + self.registerVtkWebProtocol(VtkModelCornersView()) + self.registerVtkWebProtocol(VtkModelLinesView()) + self.registerVtkWebProtocol(VtkModelSurfacesView()) + self.registerVtkWebProtocol(VtkModelBlocksView()) self.registerVtkWebProtocol(VtkGenericView(mesh_protocols, model_protocols)) # tell the C++ web app to use no encoding. @@ -106,6 +107,7 @@ def initialize(self): widget.SetInteractor(renderWindowInteractor) widget.SetViewport(0.0, 0.0, 0.2, 0.2) axes = vtk.vtkAxesActor() + widget.SetOrientationMarker(axes) widget.EnabledOn() widget.InteractiveOff() diff --git a/src/tests/data/images/mesh/polyhedrons/color.jpeg b/src/tests/data/images/mesh/polyhedra/color.jpeg similarity index 100% rename from src/tests/data/images/mesh/polyhedrons/color.jpeg rename to src/tests/data/images/mesh/polyhedra/color.jpeg diff --git a/src/tests/data/images/mesh/polyhedrons/polyhedron_attribute.jpeg b/src/tests/data/images/mesh/polyhedra/polyhedron_attribute.jpeg similarity index 100% rename from src/tests/data/images/mesh/polyhedrons/polyhedron_attribute.jpeg rename to src/tests/data/images/mesh/polyhedra/polyhedron_attribute.jpeg diff --git a/src/tests/data/images/mesh/polyhedrons/register.jpeg b/src/tests/data/images/mesh/polyhedra/register.jpeg similarity index 100% rename from src/tests/data/images/mesh/polyhedrons/register.jpeg rename to src/tests/data/images/mesh/polyhedra/register.jpeg diff --git a/src/tests/data/images/mesh/polyhedrons/vertex_attribute.jpeg b/src/tests/data/images/mesh/polyhedra/vertex_attribute.jpeg similarity index 100% rename from src/tests/data/images/mesh/polyhedrons/vertex_attribute.jpeg rename to src/tests/data/images/mesh/polyhedra/vertex_attribute.jpeg diff --git a/src/tests/data/images/mesh/polyhedrons/visibility.jpeg b/src/tests/data/images/mesh/polyhedra/visibility.jpeg similarity index 100% rename from src/tests/data/images/mesh/polyhedrons/visibility.jpeg rename to src/tests/data/images/mesh/polyhedra/visibility.jpeg diff --git a/src/tests/data/images/model/blocks/polyhedrons/color.jpeg b/src/tests/data/images/model/blocks/color.jpeg similarity index 100% rename from src/tests/data/images/model/blocks/polyhedrons/color.jpeg rename to src/tests/data/images/model/blocks/color.jpeg diff --git a/src/tests/data/images/model/blocks/polyhedrons/visibility.jpeg b/src/tests/data/images/model/blocks/visibility.jpeg similarity index 100% rename from src/tests/data/images/model/blocks/polyhedrons/visibility.jpeg rename to src/tests/data/images/model/blocks/visibility.jpeg diff --git a/src/tests/data/images/model/corners/points/color.jpeg b/src/tests/data/images/model/corners/color.jpeg similarity index 100% rename from src/tests/data/images/model/corners/points/color.jpeg rename to src/tests/data/images/model/corners/color.jpeg diff --git a/src/tests/data/images/model/corners/points/visibility.jpeg b/src/tests/data/images/model/corners/visibility.jpeg similarity index 100% rename from src/tests/data/images/model/corners/points/visibility.jpeg rename to src/tests/data/images/model/corners/visibility.jpeg diff --git a/src/tests/data/images/model/lines/edges/color.jpeg b/src/tests/data/images/model/lines/color.jpeg similarity index 100% rename from src/tests/data/images/model/lines/edges/color.jpeg rename to src/tests/data/images/model/lines/color.jpeg diff --git a/src/tests/data/images/model/lines/edges/visibility.jpeg b/src/tests/data/images/model/lines/visibility.jpeg similarity index 100% rename from src/tests/data/images/model/lines/edges/visibility.jpeg rename to src/tests/data/images/model/lines/visibility.jpeg diff --git a/src/tests/data/images/model/surfaces/polygons/color.jpeg b/src/tests/data/images/model/surfaces/color.jpeg similarity index 100% rename from src/tests/data/images/model/surfaces/polygons/color.jpeg rename to src/tests/data/images/model/surfaces/color.jpeg diff --git a/src/tests/data/images/model/surfaces/polygons/visibility.jpeg b/src/tests/data/images/model/surfaces/visibility.jpeg similarity index 100% rename from src/tests/data/images/model/surfaces/polygons/visibility.jpeg rename to src/tests/data/images/model/surfaces/visibility.jpeg diff --git a/src/tests/data/images/viewer/grid_scale_on.jpeg b/src/tests/data/images/viewer/grid_scale_on.jpeg new file mode 100644 index 0000000..cb6ac36 Binary files /dev/null and b/src/tests/data/images/viewer/grid_scale_on.jpeg differ diff --git a/src/tests/data/images/viewer/register_hat.jpeg b/src/tests/data/images/viewer/register_hat.jpeg new file mode 100644 index 0000000..e5c1745 Binary files /dev/null and b/src/tests/data/images/viewer/register_hat.jpeg differ diff --git a/src/tests/data/images/viewer/reset.jpeg b/src/tests/data/images/viewer/reset.jpeg deleted file mode 100644 index 6b8152b..0000000 Binary files a/src/tests/data/images/viewer/reset.jpeg and /dev/null differ diff --git a/src/tests/data/images/viewer/create_visualization.jpeg b/src/tests/data/images/viewer/reset_visualization.jpeg similarity index 100% rename from src/tests/data/images/viewer/create_visualization.jpeg rename to src/tests/data/images/viewer/reset_visualization.jpeg diff --git a/src/tests/mesh/polyhedra/test_polyhedra_protocols.py b/src/tests/mesh/polyhedra/test_polyhedra_protocols.py new file mode 100644 index 0000000..50a4532 --- /dev/null +++ b/src/tests/mesh/polyhedra/test_polyhedra_protocols.py @@ -0,0 +1,68 @@ +# Standard library imports + +# Third party imports +from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView +from opengeodeweb_viewer.rpc.mesh.polyhedra.polyhedra_protocols import ( + VtkMeshPolyhedraView, +) + +# Local application imports + + +def test_register_mesh(server): + + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": "123456789", "file_name": "hybrid_solid.vtu"}], + ) + assert server.compare_image(3, "mesh/polyhedra/register.jpeg") == True + + +def test_polyhedra_color(server): + + test_register_mesh(server) + + server.call( + VtkMeshPolyhedraView.mesh_polyhedra_prefix + + VtkMeshPolyhedraView.mesh_polyhedra_schemas_dict["color"]["rpc"], + [{"id": "123456789", "color": {"r": 255, "g": 0, "b": 0}}], + ) + assert server.compare_image(3, "mesh/polyhedra/color.jpeg") == True + + +def test_polyhedra_visibility(server): + + test_register_mesh(server) + + server.call( + VtkMeshPolyhedraView.mesh_polyhedra_prefix + + VtkMeshPolyhedraView.mesh_polyhedra_schemas_dict["visibility"]["rpc"], + [{"id": "123456789", "visibility": False}], + ) + assert server.compare_image(3, "mesh/polyhedra/visibility.jpeg") == True + + +def test_vertex_attribute(server): + + test_register_mesh(server) + + server.call( + VtkMeshPolyhedraView.mesh_polyhedra_prefix + + VtkMeshPolyhedraView.mesh_polyhedra_schemas_dict["vertex_attribute"]["rpc"], + [{"id": "123456789", "name": "toto_on_vertices"}], + ) + assert server.compare_image(3, "mesh/polyhedra/vertex_attribute.jpeg") == True + + +def test_polyhedron_attribute(server): + + test_register_mesh(server) + + server.call( + VtkMeshPolyhedraView.mesh_polyhedra_prefix + + VtkMeshPolyhedraView.mesh_polyhedra_schemas_dict["polyhedron_attribute"][ + "rpc" + ], + [{"id": "123456789", "name": "toto_on_polyhedra"}], + ) + assert server.compare_image(3, "mesh/polyhedra/polyhedron_attribute.jpeg") == True diff --git a/src/tests/mesh/polyhedrons/test_polyhedrons_protocols.py b/src/tests/mesh/polyhedrons/test_polyhedrons_protocols.py deleted file mode 100644 index c96a66e..0000000 --- a/src/tests/mesh/polyhedrons/test_polyhedrons_protocols.py +++ /dev/null @@ -1,70 +0,0 @@ -# Standard library imports - -# Third party imports -from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView -from opengeodeweb_viewer.rpc.mesh.polyhedrons.polyhedrons_protocols import ( - VtkMeshPolyhedronsView, -) - -# Local application imports - - -def test_register_mesh(server): - - server.call( - VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], - [{"id": "123456789", "file_name": "hybrid_solid.vtu"}], - ) - assert server.compare_image(3, "mesh/polyhedrons/register.jpeg") == True - - -def test_polyhedrons_color(server): - - test_register_mesh(server) - - server.call( - VtkMeshPolyhedronsView.mesh_polyhedrons_prefix - + VtkMeshPolyhedronsView.mesh_polyhedrons_schemas_dict["color"]["rpc"], - [{"id": "123456789", "color": {"r": 255, "g": 0, "b": 0}}], - ) - assert server.compare_image(3, "mesh/polyhedrons/color.jpeg") == True - - -def test_polyhedrons_visibility(server): - - test_register_mesh(server) - - server.call( - VtkMeshPolyhedronsView.mesh_polyhedrons_prefix - + VtkMeshPolyhedronsView.mesh_polyhedrons_schemas_dict["visibility"]["rpc"], - [{"id": "123456789", "visibility": False}], - ) - assert server.compare_image(3, "mesh/polyhedrons/visibility.jpeg") == True - - -def test_vertex_attribute(server): - - test_register_mesh(server) - - server.call( - VtkMeshPolyhedronsView.mesh_polyhedrons_prefix - + VtkMeshPolyhedronsView.mesh_polyhedrons_schemas_dict["vertex_attribute"][ - "rpc" - ], - [{"id": "123456789", "name": "toto_on_vertices"}], - ) - assert server.compare_image(3, "mesh/polyhedrons/vertex_attribute.jpeg") == True - - -def test_polyhedron_attribute(server): - - test_register_mesh(server) - - server.call( - VtkMeshPolyhedronsView.mesh_polyhedrons_prefix - + VtkMeshPolyhedronsView.mesh_polyhedrons_schemas_dict["polyhedron_attribute"][ - "rpc" - ], - [{"id": "123456789", "name": "toto_on_polyhedra"}], - ) - assert server.compare_image(3, "mesh/polyhedrons/polyhedron_attribute.jpeg") == True diff --git a/src/tests/model/blocks/polyhedrons/test_model_blocks_polyhedrons_protocols.py b/src/tests/model/blocks/polyhedrons/test_model_blocks_polyhedrons_protocols.py deleted file mode 100644 index 563b278..0000000 --- a/src/tests/model/blocks/polyhedrons/test_model_blocks_polyhedrons_protocols.py +++ /dev/null @@ -1,66 +0,0 @@ -# Standard library imports - -# Third party imports -from opengeodeweb_viewer.rpc.model.blocks.polyhedrons.blocks_polyhedrons_protocols import ( - VtkModelBlocksPolyhedronsView, -) - -# Local application imports -from src.tests.model.test_model_protocols import test_register_model_cube - - -def test_blocks_polyhedrons_visibility(server): - - test_register_model_cube(server) - - server.call( - VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_prefix - + VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_schemas_dict[ - "visibility" - ]["rpc"], - [ - { - "id": "123456789", - "block_ids": list(range(1, 50)), - "visibility": False, - } - ], - ) - - assert server.compare_image(3, "model/cube_visibility_false.jpeg") == True - - server.call( - VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_prefix - + VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_schemas_dict[ - "visibility" - ]["rpc"], - [ - { - "id": "123456789", - "block_ids": list(range(48, 50)), - "visibility": True, - } - ], - ) - - assert server.compare_image(3, "model/blocks/polyhedrons/visibility.jpeg") == True - - -def test_blocks_polyhedrons_color(server): - - test_blocks_polyhedrons_visibility(server) - - server.call( - VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_prefix - + VtkModelBlocksPolyhedronsView.model_blocks_polyhedrons_schemas_dict["color"][ - "rpc" - ], - [ - { - "id": "123456789", - "block_ids": list(range(48, 50)), - "color": {"r": 255, "g": 0, "b": 0}, - } - ], - ) - assert server.compare_image(3, "model/blocks/polyhedrons/color.jpeg") == True diff --git a/src/tests/model/blocks/test_model_blocks_protocols.py b/src/tests/model/blocks/test_model_blocks_protocols.py new file mode 100644 index 0000000..457a215 --- /dev/null +++ b/src/tests/model/blocks/test_model_blocks_protocols.py @@ -0,0 +1,60 @@ +# Standard library imports + +# Third party imports +from opengeodeweb_viewer.rpc.model.blocks.blocks_protocols import ( + VtkModelBlocksView, +) + +# Local application imports +from src.tests.model.test_model_protocols import test_register_model_cube + + +def test_blocks_polyhedra_visibility(server): + + test_register_model_cube(server) + + server.call( + VtkModelBlocksView.model_blocks_prefix + + VtkModelBlocksView.model_blocks_schemas_dict["visibility"]["rpc"], + [ + { + "id": "123456789", + "block_ids": list(range(1, 50)), + "visibility": False, + } + ], + ) + + assert server.compare_image(3, "model/cube_visibility_false.jpeg") == True + + server.call( + VtkModelBlocksView.model_blocks_prefix + + VtkModelBlocksView.model_blocks_schemas_dict["visibility"]["rpc"], + [ + { + "id": "123456789", + "block_ids": list(range(48, 50)), + "visibility": True, + } + ], + ) + + assert server.compare_image(3, "model/blocks/visibility.jpeg") == True + + +def test_blocks_polyhedra_color(server): + + test_blocks_polyhedra_visibility(server) + + server.call( + VtkModelBlocksView.model_blocks_prefix + + VtkModelBlocksView.model_blocks_schemas_dict["color"]["rpc"], + [ + { + "id": "123456789", + "block_ids": list(range(48, 50)), + "color": {"r": 255, "g": 0, "b": 0}, + } + ], + ) + assert server.compare_image(3, "model/blocks/color.jpeg") == True diff --git a/src/tests/model/corners/points/test_model_corners_points_protocols.py b/src/tests/model/corners/test_model_corners_protocols.py similarity index 56% rename from src/tests/model/corners/points/test_model_corners_points_protocols.py rename to src/tests/model/corners/test_model_corners_protocols.py index 354252e..14f27aa 100644 --- a/src/tests/model/corners/points/test_model_corners_points_protocols.py +++ b/src/tests/model/corners/test_model_corners_protocols.py @@ -1,8 +1,8 @@ # Standard library imports # Third party imports -from opengeodeweb_viewer.rpc.model.corners.points.corners_points_protocols import ( - VtkModelCornersPointsView, +from opengeodeweb_viewer.rpc.model.corners.corners_protocols import ( + VtkModelCornersView, ) # Local application imports @@ -14,10 +14,8 @@ def test_corners_points_visibility(server): test_register_model_cube(server) server.call( - VtkModelCornersPointsView.model_corners_points_prefix - + VtkModelCornersPointsView.model_corners_points_schemas_dict["visibility"][ - "rpc" - ], + VtkModelCornersView.model_corners_prefix + + VtkModelCornersView.model_corners_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -29,10 +27,8 @@ def test_corners_points_visibility(server): assert server.compare_image(3, "model/cube_visibility_false.jpeg") == True server.call( - VtkModelCornersPointsView.model_corners_points_prefix - + VtkModelCornersPointsView.model_corners_points_schemas_dict["visibility"][ - "rpc" - ], + VtkModelCornersView.model_corners_prefix + + VtkModelCornersView.model_corners_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -41,7 +37,7 @@ def test_corners_points_visibility(server): } ], ) - assert server.compare_image(3, "model/corners/points/visibility.jpeg") == True + assert server.compare_image(3, "model/corners/visibility.jpeg") == True def test_corners_points_color(server): @@ -49,8 +45,8 @@ def test_corners_points_color(server): test_corners_points_visibility(server) server.call( - VtkModelCornersPointsView.model_corners_points_prefix - + VtkModelCornersPointsView.model_corners_points_schemas_dict["color"]["rpc"], + VtkModelCornersView.model_corners_prefix + + VtkModelCornersView.model_corners_schemas_dict["color"]["rpc"], [ { "id": "123456789", @@ -59,4 +55,4 @@ def test_corners_points_color(server): } ], ) - assert server.compare_image(3, "model/corners/points/color.jpeg") == True + assert server.compare_image(3, "model/corners/color.jpeg") == True diff --git a/src/tests/model/lines/edges/test_model_lines_edges_protocols.py b/src/tests/model/lines/test_model_lines_protocols.py similarity index 59% rename from src/tests/model/lines/edges/test_model_lines_edges_protocols.py rename to src/tests/model/lines/test_model_lines_protocols.py index 5d17850..8f63830 100644 --- a/src/tests/model/lines/edges/test_model_lines_edges_protocols.py +++ b/src/tests/model/lines/test_model_lines_protocols.py @@ -1,8 +1,8 @@ # Standard library imports # Third party imports -from opengeodeweb_viewer.rpc.model.lines.edges.lines_edges_protocols import ( - VtkModelLinesEdgesView, +from opengeodeweb_viewer.rpc.model.lines.lines_protocols import ( + VtkModelLinesView, ) # Local application imports @@ -14,8 +14,8 @@ def test_lines_edges_visibility(server): test_register_model_cube(server) server.call( - VtkModelLinesEdgesView.model_lines_edges_prefix - + VtkModelLinesEdgesView.model_lines_edges_schemas_dict["visibility"]["rpc"], + VtkModelLinesView.model_lines_prefix + + VtkModelLinesView.model_lines_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -27,8 +27,8 @@ def test_lines_edges_visibility(server): assert server.compare_image(3, "model/cube_visibility_false.jpeg") == True server.call( - VtkModelLinesEdgesView.model_lines_edges_prefix - + VtkModelLinesEdgesView.model_lines_edges_schemas_dict["visibility"]["rpc"], + VtkModelLinesView.model_lines_prefix + + VtkModelLinesView.model_lines_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -37,7 +37,7 @@ def test_lines_edges_visibility(server): } ], ) - assert server.compare_image(3, "model/lines/edges/visibility.jpeg") == True + assert server.compare_image(3, "model/lines/visibility.jpeg") == True def test_lines_edges_color(server): @@ -45,8 +45,8 @@ def test_lines_edges_color(server): test_lines_edges_visibility(server) server.call( - VtkModelLinesEdgesView.model_lines_edges_prefix - + VtkModelLinesEdgesView.model_lines_edges_schemas_dict["color"]["rpc"], + VtkModelLinesView.model_lines_prefix + + VtkModelLinesView.model_lines_schemas_dict["color"]["rpc"], [ { "id": "123456789", @@ -55,4 +55,4 @@ def test_lines_edges_color(server): } ], ) - assert server.compare_image(3, "model/lines/edges/color.jpeg") == True + assert server.compare_image(3, "model/lines/color.jpeg") == True diff --git a/src/tests/model/surfaces/polygons/test_model_surfaces_polygons_protocols.py b/src/tests/model/surfaces/test_model_surfaces_protocols.py similarity index 54% rename from src/tests/model/surfaces/polygons/test_model_surfaces_polygons_protocols.py rename to src/tests/model/surfaces/test_model_surfaces_protocols.py index 7a41b4a..309daa0 100644 --- a/src/tests/model/surfaces/polygons/test_model_surfaces_polygons_protocols.py +++ b/src/tests/model/surfaces/test_model_surfaces_protocols.py @@ -1,8 +1,8 @@ # Standard library imports # Third party imports -from opengeodeweb_viewer.rpc.model.surfaces.polygons.surfaces_polygons_protocols import ( - VtkModelSurfacesPolygonsView, +from opengeodeweb_viewer.rpc.model.surfaces.surfaces_protocols import ( + VtkModelSurfacesView, ) # Local application imports @@ -14,10 +14,8 @@ def test_surfaces_polygons_visibility(server): test_register_model_cube(server) server.call( - VtkModelSurfacesPolygonsView.model_surfaces_polygons_prefix - + VtkModelSurfacesPolygonsView.model_surfaces_polygons_schemas_dict[ - "visibility" - ]["rpc"], + VtkModelSurfacesView.model_surfaces_prefix + + VtkModelSurfacesView.model_surfaces_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -29,10 +27,8 @@ def test_surfaces_polygons_visibility(server): assert server.compare_image(3, "model/cube_visibility_false.jpeg") == True server.call( - VtkModelSurfacesPolygonsView.model_surfaces_polygons_prefix - + VtkModelSurfacesPolygonsView.model_surfaces_polygons_schemas_dict[ - "visibility" - ]["rpc"], + VtkModelSurfacesView.model_surfaces_prefix + + VtkModelSurfacesView.model_surfaces_schemas_dict["visibility"]["rpc"], [ { "id": "123456789", @@ -42,7 +38,7 @@ def test_surfaces_polygons_visibility(server): ], ) - assert server.compare_image(3, "model/surfaces/polygons/visibility.jpeg") == True + assert server.compare_image(3, "model/surfaces/visibility.jpeg") == True def test_surfaces_polygons_color(server): @@ -50,10 +46,8 @@ def test_surfaces_polygons_color(server): test_surfaces_polygons_visibility(server) server.call( - VtkModelSurfacesPolygonsView.model_surfaces_polygons_prefix - + VtkModelSurfacesPolygonsView.model_surfaces_polygons_schemas_dict["color"][ - "rpc" - ], + VtkModelSurfacesView.model_surfaces_prefix + + VtkModelSurfacesView.model_surfaces_schemas_dict["color"]["rpc"], [ { "id": "123456789", @@ -62,4 +56,4 @@ def test_surfaces_polygons_color(server): } ], ) - assert server.compare_image(3, "model/surfaces/polygons/color.jpeg") == True + assert server.compare_image(3, "model/surfaces/color.jpeg") == True diff --git a/src/tests/test_viewer_protocols.py b/src/tests/test_viewer_protocols.py index ecf8f23..ba2de04 100644 --- a/src/tests/test_viewer_protocols.py +++ b/src/tests/test_viewer_protocols.py @@ -3,17 +3,19 @@ # Third party imports from opengeodeweb_viewer.rpc.viewer.viewer_protocols import VtkViewerView +from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView + # Local application imports from .mesh.test_mesh_protocols import test_register_mesh -def test_create_visualization(server): +def test_reset_visualization(server): server.call( VtkViewerView.viewer_prefix - + VtkViewerView.viewer_schemas_dict["create_visualization"]["rpc"] + + VtkViewerView.viewer_schemas_dict["reset_visualization"]["rpc"] ) - assert server.compare_image(3, "viewer/create_visualization.jpeg") == True + assert server.compare_image(3, "viewer/reset_visualization.jpeg") == True def test_reset_camera(server): @@ -166,3 +168,27 @@ def test_picked_ids(server): assert isinstance(array_ids, list), f"Expected a list, but got {type(array_ids)}" assert all(isinstance(id, str) for id in array_ids), "All IDs should be strings" assert len(array_ids) > 0, "The list of array_ids should not be empty" + + +def test_grid_scale(server): + + 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