From 6a694492559964ac80fc97846a648acd056774d1 Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Mon, 22 Jun 2026 10:24:32 +0200 Subject: [PATCH 1/5] feat(createSurface): Add preview for surfaces creation --- opengeodeweb_viewer_schemas.json | 3 ++- .../rpc/viewer/schemas/preview_points.json | 3 ++- .../rpc/viewer/schemas/preview_points.py | 1 + .../rpc/viewer/viewer_protocols.py | 17 ++++++++++++++++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/opengeodeweb_viewer_schemas.json b/opengeodeweb_viewer_schemas.json index 16909573..7e3f446e 100644 --- a/opengeodeweb_viewer_schemas.json +++ b/opengeodeweb_viewer_schemas.json @@ -2443,7 +2443,8 @@ "type": "string", "enum": [ "points", - "curve" + "curve", + "surface" ] }, "closed": { diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.json index a0d32923..a1f9b19f 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.json +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.json @@ -29,7 +29,8 @@ "type": "string", "enum": [ "points", - "curve" + "curve", + "surface" ] }, "closed": { diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py index 4bb7ab73..db24d98d 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py @@ -17,6 +17,7 @@ def __post_init__(self) -> None: class Style(Enum): CURVE = "curve" POINTS = "points" + SURFACE = "surface" @dataclass diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index 39089c1b..4c2128c5 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -512,7 +512,7 @@ def previewPoints(self, rpc_params: RpcParams) -> None: for i, pt in enumerate(points_data): self._preview_points.InsertNextPoint(pt.x, pt.y, pt.z) self._preview_verts.InsertNextCell(1, [i]) - if style_name == "curve" and i == 0: + if style_name in ["curve", "surface"] and i == 0: colors.InsertNextTuple3(60, 153, 131) else: colors.InsertNextTuple3(102, 102, 102) @@ -521,11 +521,26 @@ def previewPoints(self, rpc_params: RpcParams) -> None: self._preview_polydata.GetPointData().SetActiveScalars("Colors") lines = vtkCellArray() + polys = vtkCellArray() if style_name == "curve": for i in range(len(points_data) - 1): lines.InsertNextCell(2, [i, i + 1]) if params.closed and len(points_data) >= 2: lines.InsertNextCell(2, [len(points_data) - 1, 0]) + elif style_name == "surface": + for i in range(len(points_data) - 1): + lines.InsertNextCell(2, [i, i + 1]) + if len(points_data) >= 3: + lines.InsertNextCell(2, [len(points_data) - 1, 0]) + polys.InsertNextCell(len(points_data), list(range(len(points_data)))) + + prop = self._preview_actor.GetProperty() + if style_name == "surface": + prop.SetOpacity(0.5) + else: + prop.SetOpacity(1.0) + self._preview_polydata.SetLines(lines) + self._preview_polydata.SetPolys(polys) self._preview_polydata.Modified() self.render(-1) From 3dc7b18db0b724c75e3309d18b83ca1a5b969e67 Mon Sep 17 00:00:00 2001 From: MaxNumerique <144453705+MaxNumerique@users.noreply.github.com> Date: Mon, 22 Jun 2026 09:15:40 +0000 Subject: [PATCH 2/5] Apply prepare changes --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 50aaa5fd..9108a15f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -63,4 +63,3 @@ wslink==1.12.4 yarl>=1 # via aiohttp -opengeodeweb-microservice==1.*,>=1.1.3 From f31b8ab1a3e8c75d1ede82a17fbd0d0f09801abf Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Mon, 22 Jun 2026 16:12:48 +0200 Subject: [PATCH 3/5] nicer logic --- src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index 29969a42..c0a14565 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -411,6 +411,7 @@ def previewPoints(self, rpc_params: RpcParams) -> None: prop = self._preview_actor.GetProperty() prop.SetPointSize(10) prop.SetLineWidth(2) + prop.SetOpacity(0.5) self.get_renderer().AddActor(self._preview_actor) self._preview_points.Reset() @@ -445,12 +446,6 @@ def previewPoints(self, rpc_params: RpcParams) -> None: lines.InsertNextCell(2, [len(points_data) - 1, 0]) polys.InsertNextCell(len(points_data), list(range(len(points_data)))) - prop = self._preview_actor.GetProperty() - if style_name == "surface": - prop.SetOpacity(0.5) - else: - prop.SetOpacity(1.0) - self._preview_polydata.SetLines(lines) self._preview_polydata.SetPolys(polys) self._preview_polydata.Modified() From b42f5e76b320da49d9c0540985f5d8333cd8fcff Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Mon, 22 Jun 2026 16:19:18 +0200 Subject: [PATCH 4/5] rm opacity --- src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index c0a14565..1b43e589 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -411,7 +411,7 @@ def previewPoints(self, rpc_params: RpcParams) -> None: prop = self._preview_actor.GetProperty() prop.SetPointSize(10) prop.SetLineWidth(2) - prop.SetOpacity(0.5) + # prop.SetOpacity(0.5) self.get_renderer().AddActor(self._preview_actor) self._preview_points.Reset() From 3c063e2abdd24be157a4aa3adc94df05e48200ac Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Mon, 22 Jun 2026 16:19:48 +0200 Subject: [PATCH 5/5] rm opacity --- src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index 1b43e589..408fca26 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -411,7 +411,6 @@ def previewPoints(self, rpc_params: RpcParams) -> None: prop = self._preview_actor.GetProperty() prop.SetPointSize(10) prop.SetLineWidth(2) - # prop.SetOpacity(0.5) self.get_renderer().AddActor(self._preview_actor) self._preview_points.Reset()