From 110b484021f003bfc60e5c361112256d768a4116 Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Wed, 7 Jan 2026 16:44:41 +0100 Subject: [PATCH 1/5] feat(ScalarRange): Add Color Range RPCs, schemas to meshes --- .../object/object_methods.py | 4 +++ .../rpc/mesh/cells/cells_protocols.py | 22 +++++++++++++++ .../rpc/mesh/cells/schemas/__init__.py | 4 ++- .../mesh/cells/schemas/cell_scalar_range.json | 22 +++++++++++++++ .../mesh/cells/schemas/cell_scalar_range.py | 12 ++++++++ .../cells/schemas/vertex_scalar_range.json | 22 +++++++++++++++ .../mesh/cells/schemas/vertex_scalar_range.py | 12 ++++++++ .../rpc/mesh/mesh_protocols.py | 16 +++++++++++ .../rpc/mesh/polygons/polygons_protocols.py | 24 ++++++++++++++++ .../rpc/mesh/polygons/schemas/__init__.py | 2 ++ .../schemas/polygon_scalar_range.json | 22 +++++++++++++++ .../polygons/schemas/polygon_scalar_range.py | 12 ++++++++ .../polygons/schemas/vertex_scalar_range.json | 22 +++++++++++++++ .../polygons/schemas/vertex_scalar_range.py | 12 ++++++++ .../rpc/mesh/polyhedra/polyhedra_protocols.py | 26 ++++++++++++++++++ .../rpc/mesh/polyhedra/schemas/__init__.py | 2 ++ .../schemas/polyhedron_scalar_range.json | 22 +++++++++++++++ .../schemas/polyhedron_scalar_range.py | 12 ++++++++ .../schemas/vertex_scalar_range.json | 22 +++++++++++++++ .../polyhedra/schemas/vertex_scalar_range.py | 12 ++++++++ .../rpc/mesh/schemas/__init__.py | 2 ++ .../rpc/mesh/schemas/cell_scalar_range.json | 22 +++++++++++++++ .../rpc/mesh/schemas/cell_scalar_range.py | 12 ++++++++ .../rpc/mesh/schemas/vertex_scalar_range.json | 22 +++++++++++++++ .../rpc/mesh/schemas/vertex_scalar_range.py | 12 ++++++++ .../images/mesh/polygons/scalar_range.jpeg | Bin 0 -> 12319 bytes .../polygons/test_mesh_polygons_protocols.py | 25 +++++++++++++++++ 27 files changed, 398 insertions(+), 1 deletion(-) create mode 100644 src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py create mode 100644 src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json create mode 100644 src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py create mode 100644 tests/data/images/mesh/polygons/scalar_range.jpeg diff --git a/src/opengeodeweb_viewer/object/object_methods.py b/src/opengeodeweb_viewer/object/object_methods.py index dcc7768..77cd72d 100644 --- a/src/opengeodeweb_viewer/object/object_methods.py +++ b/src/opengeodeweb_viewer/object/object_methods.py @@ -134,3 +134,7 @@ def clearColors(self, data_id: str) -> None: output.GetPointData().SetActiveScalars("") output.GetCellData().SetActiveScalars("") mapper.ScalarVisibilityOff() + + def SetScalarRange(self, data_id: str, minimum: float, maximum: float) -> None: + mapper = self.get_object(data_id).mapper + mapper.SetScalarRange(minimum, maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py index 9e25c0b..bf8b7b5 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py @@ -63,3 +63,25 @@ def setMeshCellsCellAttribute(self, rpc_params: RpcParams) -> None: ) params = schemas.CellAttribute.from_dict(rpc_params) self.displayAttributeOnCells(params.id, params.name) + + @exportRpc( + mesh_cells_prefix + mesh_cells_schemas_dict["vertex_scalar_range"]["rpc"] + ) + def setMeshCellsVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_cells_schemas_dict["vertex_scalar_range"], + self.mesh_cells_prefix, + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) + + @exportRpc(mesh_cells_prefix + mesh_cells_schemas_dict["cell_scalar_range"]["rpc"]) + def setMeshCellsCellScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_cells_schemas_dict["cell_scalar_range"], + self.mesh_cells_prefix, + ) + params = schemas.CellScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py index c77862a..48ca7db 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py @@ -1,4 +1,6 @@ from .visibility import * from .vertex_attribute import * -from .color import * from .cell_attribute import * +from .color import * +from .vertex_scalar_range import * +from .cell_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.json new file mode 100644 index 0000000..9efd4c4 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "cell_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py new file mode 100644 index 0000000..074f322 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class CellScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.json new file mode 100644 index 0000000..68a8cab --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py new file mode 100644 index 0000000..ff23bc7 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class VertexScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py index 0b54166..5ea02f9 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py @@ -146,3 +146,19 @@ def displayAttributeOnCells(self, data_id: str, name: str) -> None: mapper.ScalarVisibilityOn() mapper.SetScalarModeToUseCellData() mapper.SetScalarRange(cells.GetScalars().GetRange()) + + @exportRpc(mesh_prefix + mesh_schemas_dict["vertex_scalar_range"]["rpc"]) + def setMeshVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, self.mesh_schemas_dict["vertex_scalar_range"], self.mesh_prefix + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) + + @exportRpc(mesh_prefix + mesh_schemas_dict["cell_scalar_range"]["rpc"]) + def setMeshCellScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, self.mesh_schemas_dict["cell_scalar_range"], self.mesh_prefix + ) + params = schemas.CellScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py index 78c5660..65f0eae 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py @@ -67,3 +67,27 @@ def setMeshPolygonsPolygonAttribute(self, rpc_params: RpcParams) -> None: ) params = schemas.PolygonAttribute.from_dict(rpc_params) self.displayAttributeOnCells(params.id, params.name) + + @exportRpc( + mesh_polygons_prefix + mesh_polygons_schemas_dict["vertex_scalar_range"]["rpc"] + ) + def setMeshPolygonsVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_polygons_schemas_dict["vertex_scalar_range"], + self.mesh_polygons_prefix, + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) + + @exportRpc( + mesh_polygons_prefix + mesh_polygons_schemas_dict["polygon_scalar_range"]["rpc"] + ) + def setMeshPolygonsPolygonScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_polygons_schemas_dict["polygon_scalar_range"], + self.mesh_polygons_prefix, + ) + params = schemas.PolygonScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py index 4085e8c..cade099 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py @@ -2,3 +2,5 @@ from .vertex_attribute import * from .polygon_attribute import * from .color import * +from .vertex_scalar_range import * +from .polygon_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.json new file mode 100644 index 0000000..75c20f1 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "polygon_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py new file mode 100644 index 0000000..be4ea98 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class PolygonScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.json new file mode 100644 index 0000000..68a8cab --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py new file mode 100644 index 0000000..ff23bc7 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class VertexScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py index 1d87bfd..1ae18e8 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py @@ -68,3 +68,29 @@ def setMeshPolyhedraPolyhedronAttribute(self, rpc_params: RpcParams) -> None: ) params = schemas.PolyhedronAttribute.from_dict(rpc_params) self.displayAttributeOnCells(params.id, params.name) + + @exportRpc( + mesh_polyhedra_prefix + + mesh_polyhedra_schemas_dict["vertex_scalar_range"]["rpc"] + ) + def setMeshPolyhedraVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_polyhedra_schemas_dict["vertex_scalar_range"], + self.mesh_polyhedra_prefix, + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) + + @exportRpc( + mesh_polyhedra_prefix + + mesh_polyhedra_schemas_dict["polyhedron_scalar_range"]["rpc"] + ) + def setMeshPolyhedraPolyhedronScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_polyhedra_schemas_dict["polyhedron_scalar_range"], + self.mesh_polyhedra_prefix, + ) + params = schemas.PolyhedronScalarRange.from_dict(rpc_params) + self.SetScalarRange(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py index 40aad4f..1bdf557 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py @@ -2,3 +2,5 @@ from .vertex_attribute import * from .polyhedron_attribute import * from .color import * +from .vertex_scalar_range import * +from .polyhedron_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.json new file mode 100644 index 0000000..31d646d --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "polyhedron_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py new file mode 100644 index 0000000..08a5264 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class PolyhedronScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.json new file mode 100644 index 0000000..68a8cab --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py new file mode 100644 index 0000000..ff23bc7 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class VertexScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py index e6b398e..6c83d49 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py @@ -4,3 +4,5 @@ from .deregister import * from .color import * from .apply_textures import * +from .vertex_scalar_range import * +from .cell_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json new file mode 100644 index 0000000..9efd4c4 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "cell_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py new file mode 100644 index 0000000..074f322 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class CellScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json new file mode 100644 index 0000000..68a8cab --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json @@ -0,0 +1,22 @@ +{ + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py new file mode 100644 index 0000000..ff23bc7 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py @@ -0,0 +1,12 @@ +from dataclasses_json import DataClassJsonMixin +from dataclasses import dataclass + + +@dataclass +class VertexScalarRange(DataClassJsonMixin): + def __post_init__(self) -> None: + print(self, flush=True) + + id: str + minimum: float + maximum: float diff --git a/tests/data/images/mesh/polygons/scalar_range.jpeg b/tests/data/images/mesh/polygons/scalar_range.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6982377dc2d2ae1490cbeffb4aba09bfd3a38d21 GIT binary patch literal 12319 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 vxbS^pLKy3lC6bf None: + + dataset_factory(id="123456789", viewable_file="triangulated_surface2d.vtp") + + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": "123456789"}], + ) + + server.call( + VtkMeshPolygonsView.mesh_polygons_prefix + + VtkMeshPolygonsView.mesh_polygons_schemas_dict["polygon_attribute"]["rpc"], + [{"id": "123456789", "name": "triangle_vertices"}], + ) + + server.call( + VtkMeshPolygonsView.mesh_polygons_prefix + + VtkMeshPolygonsView.mesh_polygons_schemas_dict["polygon_scalar_range"]["rpc"], + [{"id": "123456789", "minimum": 0, "maximum": 10}], + ) + assert server.compare_image("mesh/polygons/scalar_range.jpeg") == True From 7b6ae2d2bf50844d48e86be7f83c8ff160862245 Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Wed, 7 Jan 2026 17:05:49 +0100 Subject: [PATCH 2/5] typed imports in conftest --- tests/conftest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index b4f1373..16f4fb7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,13 +2,13 @@ from pathlib import Path from websocket import create_connection, WebSocketTimeoutException import json -from xprocess import ProcessStarter, XProcess +from xprocess import ProcessStarter, XProcess # type: ignore[import-untyped] from vtkmodules.vtkIOImage import vtkImageReader2, vtkPNGReader, vtkJPEGReader from vtkmodules.vtkImagingCore import vtkImageDifference import os import shutil import xml.etree.ElementTree as ET -from typing import Callable, Generator, Any, cast +from typing import Callable, Generator, Any from opengeodeweb_viewer import config from opengeodeweb_microservice.database.connection import get_session, init_database from opengeodeweb_microservice.database.data import Data @@ -159,7 +159,7 @@ def __init__(self, root_path: Path) -> None: self.root_path = Path(root_path) def get_xprocess_args(self) -> tuple[str, type, type]: - class Starter(ProcessStarter): + class Starter(ProcessStarter): # type: ignore terminate_on_interrupt = True pattern = "wslink: Starting factory" timeout = 10 From 3a219dafb776f5a35794a4d2e2f63c4afe36d033 Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Thu, 8 Jan 2026 09:22:07 +0100 Subject: [PATCH 3/5] harmonize with attribute & add missing schemas and RPcs for meshes --- .../object/object_methods.py | 6 ++-- .../rpc/mesh/cells/cells_protocols.py | 4 +-- .../rpc/mesh/edges/mesh_edges_protocols.py | 12 ++++++++ .../rpc/mesh/edges/schemas/__init__.py | 1 + .../schemas/vertex_scalar_range.json | 0 .../schemas/vertex_scalar_range.py | 0 .../rpc/mesh/mesh_protocols.py | 28 +++++++++---------- .../rpc/mesh/points/mesh_points_protocols.py | 12 ++++++++ .../rpc/mesh/points/schemas/__init__.py | 1 + .../schemas/vertex_scalar_range.json} | 2 +- .../schemas/vertex_scalar_range.py} | 2 +- .../rpc/mesh/polygons/polygons_protocols.py | 4 +-- .../rpc/mesh/polyhedra/polyhedra_protocols.py | 4 +-- .../rpc/mesh/schemas/__init__.py | 2 -- 14 files changed, 51 insertions(+), 27 deletions(-) rename src/opengeodeweb_viewer/rpc/mesh/{ => edges}/schemas/vertex_scalar_range.json (100%) rename src/opengeodeweb_viewer/rpc/mesh/{ => edges}/schemas/vertex_scalar_range.py (100%) rename src/opengeodeweb_viewer/rpc/mesh/{schemas/cell_scalar_range.json => points/schemas/vertex_scalar_range.json} (90%) rename src/opengeodeweb_viewer/rpc/mesh/{schemas/cell_scalar_range.py => points/schemas/vertex_scalar_range.py} (82%) diff --git a/src/opengeodeweb_viewer/object/object_methods.py b/src/opengeodeweb_viewer/object/object_methods.py index 77cd72d..0efce0e 100644 --- a/src/opengeodeweb_viewer/object/object_methods.py +++ b/src/opengeodeweb_viewer/object/object_methods.py @@ -135,6 +135,6 @@ def clearColors(self, data_id: str) -> None: output.GetCellData().SetActiveScalars("") mapper.ScalarVisibilityOff() - def SetScalarRange(self, data_id: str, minimum: float, maximum: float) -> None: - mapper = self.get_object(data_id).mapper - mapper.SetScalarRange(minimum, maximum) + # def SetScalarRange(self, data_id: str, minimum: float, maximum: float) -> None: + # mapper = self.get_object(data_id).mapper + # mapper.SetScalarRange(minimum, maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py index bf8b7b5..c402143 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/cells_protocols.py @@ -74,7 +74,7 @@ def setMeshCellsVertexScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_cells_prefix, ) params = schemas.VertexScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnVertices(params.id, params.minimum, params.maximum) @exportRpc(mesh_cells_prefix + mesh_cells_schemas_dict["cell_scalar_range"]["rpc"]) def setMeshCellsCellScalarRange(self, rpc_params: RpcParams) -> None: @@ -84,4 +84,4 @@ def setMeshCellsCellScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_cells_prefix, ) params = schemas.CellScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnCells(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py index 1f0f62c..b5e143d 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py @@ -49,3 +49,15 @@ def setMeshEdgesWidth(self, rpc_params: RpcParams) -> None: ) params = schemas.Width.from_dict(rpc_params) self.SetEdgesWidth(params.id, params.width) + + @exportRpc( + mesh_edges_prefix + mesh_edges_schemas_dict["vertex_scalar_range"]["rpc"] + ) + def setMeshEdgesVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_edges_schemas_dict["vertex_scalar_range"], + self.mesh_edges_prefix, + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.displayScalarRangeOnVertices(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py index 27cf1d7..8fad4a4 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py @@ -3,3 +3,4 @@ from .vertex_attribute import * from .size import * from .color import * +from .vertex_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.json similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.json rename to src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.json diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py similarity index 100% rename from src/opengeodeweb_viewer/rpc/mesh/schemas/vertex_scalar_range.py rename to src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py diff --git a/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py index 5ea02f9..e8110db 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py @@ -147,18 +147,18 @@ def displayAttributeOnCells(self, data_id: str, name: str) -> None: mapper.SetScalarModeToUseCellData() mapper.SetScalarRange(cells.GetScalars().GetRange()) - @exportRpc(mesh_prefix + mesh_schemas_dict["vertex_scalar_range"]["rpc"]) - def setMeshVertexScalarRange(self, rpc_params: RpcParams) -> None: - validate_schema( - rpc_params, self.mesh_schemas_dict["vertex_scalar_range"], self.mesh_prefix - ) - params = schemas.VertexScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + def displayScalarRangeOnVertices( + self, data_id: str, minimum: float, maximum: float + ) -> None: + mapper = self.get_object(data_id).mapper + mapper.ScalarVisibilityOn() + mapper.SetScalarModeToUsePointData() + mapper.SetScalarRange(minimum, maximum) - @exportRpc(mesh_prefix + mesh_schemas_dict["cell_scalar_range"]["rpc"]) - def setMeshCellScalarRange(self, rpc_params: RpcParams) -> None: - validate_schema( - rpc_params, self.mesh_schemas_dict["cell_scalar_range"], self.mesh_prefix - ) - params = schemas.CellScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + def displayScalarRangeOnCells( + self, data_id: str, minimum: float, maximum: float + ) -> None: + mapper = self.get_object(data_id).mapper + mapper.ScalarVisibilityOn() + mapper.SetScalarModeToUseCellData() + mapper.SetScalarRange(minimum, maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py index 81ed131..9ed8c45 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py @@ -59,3 +59,15 @@ def setMeshPointsVertexAttribute(self, rpc_params: RpcParams) -> None: ) params = schemas.VertexAttribute.from_dict(rpc_params) self.displayAttributeOnVertices(params.id, params.name) + + @exportRpc( + mesh_points_prefix + mesh_points_schemas_dict["vertex_scalar_range"]["rpc"] + ) + def setMeshPointsVertexScalarRange(self, rpc_params: RpcParams) -> None: + validate_schema( + rpc_params, + self.mesh_points_schemas_dict["vertex_scalar_range"], + self.mesh_points_prefix, + ) + params = schemas.VertexScalarRange.from_dict(rpc_params) + self.displayScalarRangeOnVertices(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py index 67bb8fc..20a9131 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py @@ -2,3 +2,4 @@ from .vertex_attribute import * from .size import * from .color import * +from .vertex_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json similarity index 90% rename from src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json rename to src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json index 9efd4c4..68a8cab 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.json +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.json @@ -1,5 +1,5 @@ { - "rpc": "cell_scalar_range", + "rpc": "vertex_scalar_range", "type": "object", "properties": { "id": { diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py similarity index 82% rename from src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py rename to src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py index 074f322..ff23bc7 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/cell_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py @@ -3,7 +3,7 @@ @dataclass -class CellScalarRange(DataClassJsonMixin): +class VertexScalarRange(DataClassJsonMixin): def __post_init__(self) -> None: print(self, flush=True) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py index 65f0eae..3bfff46 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py @@ -78,7 +78,7 @@ def setMeshPolygonsVertexScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_polygons_prefix, ) params = schemas.VertexScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnVertices(params.id, params.minimum, params.maximum) @exportRpc( mesh_polygons_prefix + mesh_polygons_schemas_dict["polygon_scalar_range"]["rpc"] @@ -90,4 +90,4 @@ def setMeshPolygonsPolygonScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_polygons_prefix, ) params = schemas.PolygonScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnCells(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py index 1ae18e8..b121ca8 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/polyhedra_protocols.py @@ -80,7 +80,7 @@ def setMeshPolyhedraVertexScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_polyhedra_prefix, ) params = schemas.VertexScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnVertices(params.id, params.minimum, params.maximum) @exportRpc( mesh_polyhedra_prefix @@ -93,4 +93,4 @@ def setMeshPolyhedraPolyhedronScalarRange(self, rpc_params: RpcParams) -> None: self.mesh_polyhedra_prefix, ) params = schemas.PolyhedronScalarRange.from_dict(rpc_params) - self.SetScalarRange(params.id, params.minimum, params.maximum) + self.displayScalarRangeOnCells(params.id, params.minimum, params.maximum) diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py index 6c83d49..e6b398e 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/__init__.py @@ -4,5 +4,3 @@ from .deregister import * from .color import * from .apply_textures import * -from .vertex_scalar_range import * -from .cell_scalar_range import * From df94332525d3b5aa45128c8887920164483f9a4d Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Thu, 8 Jan 2026 09:23:33 +0100 Subject: [PATCH 4/5] rm comments --- src/opengeodeweb_viewer/object/object_methods.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/opengeodeweb_viewer/object/object_methods.py b/src/opengeodeweb_viewer/object/object_methods.py index 0efce0e..dcc7768 100644 --- a/src/opengeodeweb_viewer/object/object_methods.py +++ b/src/opengeodeweb_viewer/object/object_methods.py @@ -134,7 +134,3 @@ def clearColors(self, data_id: str) -> None: output.GetPointData().SetActiveScalars("") output.GetCellData().SetActiveScalars("") mapper.ScalarVisibilityOff() - - # def SetScalarRange(self, data_id: str, minimum: float, maximum: float) -> None: - # mapper = self.get_object(data_id).mapper - # mapper.SetScalarRange(minimum, maximum) From 1d47cb43e90bae75e61bb4c76a392b8e04bb7a2f Mon Sep 17 00:00:00 2001 From: MaxNumerique <144453705+MaxNumerique@users.noreply.github.com> Date: Thu, 8 Jan 2026 09:02:37 +0000 Subject: [PATCH 5/5] Apply prepare changes --- opengeodeweb_viewer_schemas.json | 184 ++++++++++++++++++ requirements.txt | 1 - .../rpc/mesh/cells/schemas/__init__.py | 4 +- .../mesh/cells/schemas/cell_scalar_range.py | 2 +- .../mesh/cells/schemas/vertex_scalar_range.py | 2 +- .../rpc/mesh/edges/schemas/__init__.py | 2 +- .../mesh/edges/schemas/vertex_scalar_range.py | 2 +- .../rpc/mesh/points/schemas/__init__.py | 2 +- .../points/schemas/vertex_scalar_range.py | 2 +- .../rpc/mesh/polygons/schemas/__init__.py | 4 +- .../polygons/schemas/polygon_scalar_range.py | 2 +- .../polygons/schemas/vertex_scalar_range.py | 2 +- .../rpc/mesh/polyhedra/schemas/__init__.py | 4 +- .../schemas/polyhedron_scalar_range.py | 2 +- .../polyhedra/schemas/vertex_scalar_range.py | 2 +- 15 files changed, 200 insertions(+), 17 deletions(-) diff --git a/opengeodeweb_viewer_schemas.json b/opengeodeweb_viewer_schemas.json index 7976533..13e12ff 100644 --- a/opengeodeweb_viewer_schemas.json +++ b/opengeodeweb_viewer_schemas.json @@ -53,6 +53,29 @@ ], "additionalProperties": false }, + "vertex_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.cells.vertex_scalar_range", + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "vertex_attribute": { "$id": "opengeodeweb_viewer.mesh.cells.vertex_attribute", "rpc": "vertex_attribute", @@ -121,6 +144,29 @@ ], "additionalProperties": false }, + "cell_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.cells.cell_scalar_range", + "rpc": "cell_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "cell_attribute": { "$id": "opengeodeweb_viewer.mesh.cells.cell_attribute", "rpc": "cell_attribute", @@ -181,6 +227,29 @@ ], "additionalProperties": false }, + "vertex_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.edges.vertex_scalar_range", + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "vertex_attribute": { "$id": "opengeodeweb_viewer.mesh.edges.vertex_attribute", "rpc": "vertex_attribute", @@ -289,6 +358,29 @@ ], "additionalProperties": false }, + "vertex_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.points.vertex_scalar_range", + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "vertex_attribute": { "$id": "opengeodeweb_viewer.mesh.points.vertex_attribute", "rpc": "vertex_attribute", @@ -397,6 +489,29 @@ ], "additionalProperties": false }, + "vertex_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.polygons.vertex_scalar_range", + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "vertex_attribute": { "$id": "opengeodeweb_viewer.mesh.polygons.vertex_attribute", "rpc": "vertex_attribute", @@ -417,6 +532,29 @@ ], "additionalProperties": false }, + "polygon_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.polygons.polygon_scalar_range", + "rpc": "polygon_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "polygon_attribute": { "$id": "opengeodeweb_viewer.mesh.polygons.polygon_attribute", "rpc": "polygon_attribute", @@ -506,6 +644,29 @@ ], "additionalProperties": false }, + "vertex_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.polyhedra.vertex_scalar_range", + "rpc": "vertex_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "vertex_attribute": { "$id": "opengeodeweb_viewer.mesh.polyhedra.vertex_attribute", "rpc": "vertex_attribute", @@ -526,6 +687,29 @@ ], "additionalProperties": false }, + "polyhedron_scalar_range": { + "$id": "opengeodeweb_viewer.mesh.polyhedra.polyhedron_scalar_range", + "rpc": "polyhedron_scalar_range", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "minimum": { + "type": "number" + }, + "maximum": { + "type": "number" + } + }, + "required": [ + "id", + "minimum", + "maximum" + ], + "additionalProperties": false + }, "polyhedron_attribute": { "$id": "opengeodeweb_viewer.mesh.polyhedra.polyhedron_attribute", "rpc": "polyhedron_attribute", diff --git a/requirements.txt b/requirements.txt index 229c58f..065674a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,4 +61,3 @@ wslink==1.12.4 yarl>=1 # via aiohttp -opengeodeweb-microservice==1.*,>=1.0.12rc1 diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py index 48ca7db..20497c4 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/__init__.py @@ -1,6 +1,6 @@ from .visibility import * +from .vertex_scalar_range import * from .vertex_attribute import * -from .cell_attribute import * from .color import * -from .vertex_scalar_range import * from .cell_scalar_range import * +from .cell_attribute import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py index 074f322..5013762 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/cell_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py index ff23bc7..735ba2a 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/vertex_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py index 8fad4a4..1c778fe 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/__init__.py @@ -1,6 +1,6 @@ from .width import * from .visibility import * +from .vertex_scalar_range import * from .vertex_attribute import * from .size import * from .color import * -from .vertex_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py index ff23bc7..735ba2a 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/vertex_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py index 20a9131..e4c1430 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/__init__.py @@ -1,5 +1,5 @@ from .visibility import * +from .vertex_scalar_range import * from .vertex_attribute import * from .size import * from .color import * -from .vertex_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py index ff23bc7..735ba2a 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/vertex_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py index cade099..ea22f65 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/__init__.py @@ -1,6 +1,6 @@ from .visibility import * +from .vertex_scalar_range import * from .vertex_attribute import * +from .polygon_scalar_range import * from .polygon_attribute import * from .color import * -from .vertex_scalar_range import * -from .polygon_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py index be4ea98..c90a148 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/polygon_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py index ff23bc7..735ba2a 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/vertex_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py index 1bdf557..1654103 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/__init__.py @@ -1,6 +1,6 @@ from .visibility import * +from .vertex_scalar_range import * from .vertex_attribute import * +from .polyhedron_scalar_range import * from .polyhedron_attribute import * from .color import * -from .vertex_scalar_range import * -from .polyhedron_scalar_range import * diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py index 08a5264..16b8dae 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/polyhedron_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py index ff23bc7..735ba2a 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/vertex_scalar_range.py @@ -8,5 +8,5 @@ def __post_init__(self) -> None: print(self, flush=True) id: str - minimum: float maximum: float + minimum: float