Skip to content

Commit b6011d5

Browse files
Merge pull request #57 from Geode-solutions/feat/model_graphic_options
feat(model): new rpcs
2 parents 49ccdac + 8f9eceb commit b6011d5

File tree

106 files changed

+1987
-293
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1987
-293
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ schemas.json
1111
build
1212
/src/tests/tests_output/
1313
*.egg-info
14+
.coverage*

pyproject.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ where = ["src"]
4343
"opengeodeweb_viewer.rpc.mesh.polygons.schemas" = ["*.json"]
4444
"opengeodeweb_viewer.rpc.mesh.polyhedrons.schemas" = ["*.json"]
4545
"opengeodeweb_viewer.rpc.model.schemas" = ["*.json"]
46+
"opengeodeweb_viewer.rpc.model.corners.points.schemas" = ["*.json"]
47+
"opengeodeweb_viewer.rpc.model.lines.points.schemas" = ["*.json"]
48+
"opengeodeweb_viewer.rpc.model.lines.edges.schemas" = ["*.json"]
49+
"opengeodeweb_viewer.rpc.model.surfaces.points.schemas" = ["*.json"]
50+
"opengeodeweb_viewer.rpc.model.surfaces.edges.schemas" = ["*.json"]
51+
"opengeodeweb_viewer.rpc.model.surfaces.polygons.schemas" = ["*.json"]
52+
"opengeodeweb_viewer.rpc.model.blocks.points.schemas" = ["*.json"]
53+
"opengeodeweb_viewer.rpc.model.blocks.edges.schemas" = ["*.json"]
54+
"opengeodeweb_viewer.rpc.model.blocks.polygons.schemas" = ["*.json"]
55+
"opengeodeweb_viewer.rpc.model.blocks.polyhedrons.schemas" = ["*.json"]
4656
"opengeodeweb_viewer.rpc.viewer.schemas" = ["*.json"]
4757

4858
[tool.semantic_release]

src/opengeodeweb_viewer/object/object_methods.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,18 @@ def SetPointsColor(self, id, red, green, blue):
138138
actor.GetProperty().SetVertexColor([red / 255, green / 255, blue / 255])
139139
self.render()
140140

141+
def SetBlocksVisibility(self, id, block_ids, visibility):
142+
mapper = self.get_object(id)["mapper"]
143+
for block_id in block_ids:
144+
mapper.SetBlockVisibility(block_id, visibility)
145+
self.render()
146+
147+
def SetBlocksColor(self, id, block_ids, red, green, blue):
148+
mapper = self.get_object(id)["mapper"]
149+
for block_id in block_ids:
150+
mapper.SetBlockColor(block_id, [red / 255, green / 255, blue / 255])
151+
self.render()
152+
141153
def clearColors(self, id):
142154
db = self.get_object(id)
143155
mapper = db["mapper"]

src/opengeodeweb_viewer/rpc/generic/generic_protocols.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
# Standard library imports
2-
import json
32
import os
43

54
# Third party imports
6-
import vtk
75
from vtk.web import protocols as vtk_protocols
86
from wslink import register as exportRpc
97

@@ -25,28 +23,21 @@ def __init__(self, mesh_protocols, model_protocols):
2523

2624
@exportRpc(generic_prefix + generic_schemas_dict["register"]["rpc"])
2725
def register(self, params):
28-
print(
29-
self.generic_prefix + self.generic_schemas_dict["register"]["rpc"],
30-
f"{params=}",
31-
flush=True,
26+
validate_schema(
27+
params, self.generic_schemas_dict["register"], self.generic_prefix
3228
)
33-
validate_schema(params, self.generic_schemas_dict["register"])
3429
viewer_object = params["viewer_object"]
3530
params.pop("viewer_object", None)
36-
print(f"{params=}", flush=True)
3731
if viewer_object == "mesh":
3832
self.mesh_protocols.registerMesh(params)
3933
elif viewer_object == "model":
4034
self.model_protocols.registerModel(params)
4135

4236
@exportRpc(generic_prefix + generic_schemas_dict["deregister"]["rpc"])
4337
def deregister(self, params):
44-
print(
45-
self.generic_prefix + self.generic_schemas_dict["deregister"]["rpc"],
46-
f"{params=}",
47-
flush=True,
38+
validate_schema(
39+
params, self.generic_schemas_dict["deregister"], self.generic_prefix
4840
)
49-
validate_schema(params, self.generic_schemas_dict["deregister"])
5041
viewer_object = params["viewer_object"]
5142
params.pop("viewer_object", None)
5243
if viewer_object == "mesh":

src/opengeodeweb_viewer/rpc/mesh/edges/edges_protocols.py renamed to src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,19 @@ def __init__(self):
2020

2121
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["visibility"]["rpc"])
2222
def setMeshEdgesVisibility(self, params):
23-
print(
24-
self.mesh_edges_prefix + self.mesh_edges_schemas_dict["visibility"]["rpc"],
25-
f"{params=}",
26-
flush=True,
23+
validate_schema(
24+
params, self.mesh_edges_schemas_dict["visibility"], self.mesh_edges_prefix
2725
)
28-
validate_schema(params, self.mesh_edges_schemas_dict["visibility"])
29-
id = params["id"]
30-
visibility = bool(params["visibility"])
26+
id, visibility = params["id"], params["visibility"]
3127
self.SetEdgesVisibility(id, visibility)
3228

3329
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["color"]["rpc"])
3430
def setMeshEdgesColor(self, params):
35-
print(
36-
self.mesh_edges_prefix + self.mesh_edges_schemas_dict["color"]["rpc"],
37-
f"{params=}",
38-
flush=True,
31+
validate_schema(
32+
params, self.mesh_edges_schemas_dict["color"], self.mesh_edges_prefix
3933
)
40-
validate_schema(params, self.mesh_edges_schemas_dict["color"])
41-
id = params["id"]
42-
red, green, blue = (
34+
id, red, green, blue = (
35+
params["id"],
4336
params["color"]["r"],
4437
params["color"]["g"],
4538
params["color"]["b"],
@@ -48,12 +41,8 @@ def setMeshEdgesColor(self, params):
4841

4942
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["size"]["rpc"])
5043
def setMeshEdgesSize(self, params):
51-
print(
52-
self.mesh_edges_prefix + self.mesh_edges_schemas_dict["size"]["rpc"],
53-
f"{params=}",
54-
flush=True,
44+
validate_schema(
45+
params, self.mesh_edges_schemas_dict["size"], self.mesh_edges_prefix
5546
)
56-
validate_schema(params, self.mesh_edges_schemas_dict["size"])
57-
id = params["id"]
58-
size = bool(params["size"])
47+
id, size = params["id"], params["size"]
5948
self.SetEdgesSize(id, size)

src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py

Lines changed: 13 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,8 @@ def __init__(self):
2121

2222
@exportRpc(mesh_prefix + mesh_schemas_dict["register"]["rpc"])
2323
def registerMesh(self, params):
24-
print(
25-
self.mesh_prefix + self.mesh_schemas_dict["register"]["rpc"],
26-
f"{params=}",
27-
flush=True,
28-
)
29-
validate_schema(params, self.mesh_schemas_dict["register"])
30-
id = params["id"]
31-
file_name = params["file_name"]
24+
validate_schema(params, self.mesh_schemas_dict["register"], self.mesh_prefix)
25+
id, file_name = params["id"], params["file_name"]
3226
try:
3327
reader = vtk.vtkXMLGenericDataObjectReader()
3428
filter = {}
@@ -40,49 +34,27 @@ def registerMesh(self, params):
4034

4135
@exportRpc(mesh_prefix + mesh_schemas_dict["deregister"]["rpc"])
4236
def deregisterMesh(self, params):
43-
print(
44-
self.mesh_prefix + self.mesh_schemas_dict["deregister"]["rpc"],
45-
f"{params=}",
46-
flush=True,
47-
)
48-
validate_schema(params, self.mesh_schemas_dict["deregister"])
37+
validate_schema(params, self.mesh_schemas_dict["deregister"], self.mesh_prefix)
4938
id = params["id"]
5039
self.deregisterObject(id)
5140

5241
@exportRpc(mesh_prefix + mesh_schemas_dict["visibility"]["rpc"])
5342
def SetMeshVisibility(self, params):
54-
print(
55-
self.mesh_prefix + self.mesh_schemas_dict["visibility"]["rpc"],
56-
f"{params=}",
57-
flush=True,
58-
)
59-
validate_schema(params, self.mesh_schemas_dict["visibility"])
60-
id = params["id"]
61-
visibility = bool(params["visibility"])
43+
validate_schema(params, self.mesh_schemas_dict["visibility"], self.mesh_prefix)
44+
id, visibility = params["id"], params["visibility"]
6245
self.SetVisibility(id, visibility)
6346

6447
@exportRpc(mesh_prefix + mesh_schemas_dict["opacity"]["rpc"])
6548
def setMeshOpacity(self, params):
66-
print(
67-
self.mesh_prefix + self.mesh_schemas_dict["opacity"]["rpc"],
68-
f"{params=}",
69-
flush=True,
70-
)
71-
validate_schema(params, self.mesh_schemas_dict["opacity"])
72-
id = params["id"]
73-
opacity = float(params["opacity"])
49+
validate_schema(params, self.mesh_schemas_dict["opacity"], self.mesh_prefix)
50+
id, opacity = params["id"], params["opacity"]
7451
self.SetOpacity(id, opacity)
7552

7653
@exportRpc(mesh_prefix + mesh_schemas_dict["color"]["rpc"])
7754
def setMeshColor(self, params):
78-
print(
79-
self.mesh_prefix + self.mesh_schemas_dict["color"]["rpc"],
80-
f"{params=}",
81-
flush=True,
82-
)
83-
validate_schema(params, self.mesh_schemas_dict["color"])
84-
id = params["id"]
85-
red, green, blue = (
55+
validate_schema(params, self.mesh_schemas_dict["color"], self.mesh_prefix)
56+
id, red, green, blue = (
57+
params["id"],
8658
params["color"]["r"],
8759
params["color"]["g"],
8860
params["color"]["b"],
@@ -91,14 +63,10 @@ def setMeshColor(self, params):
9163

9264
@exportRpc(mesh_prefix + mesh_schemas_dict["apply_textures"]["rpc"])
9365
def meshApplyTextures(self, params):
94-
print(
95-
self.mesh_prefix + self.mesh_schemas_dict["apply_textures"]["rpc"],
96-
f"{params=}",
97-
flush=True,
66+
validate_schema(
67+
params, self.mesh_schemas_dict["apply_textures"], self.mesh_prefix
9868
)
99-
validate_schema(params, self.mesh_schemas_dict["apply_textures"])
100-
id = params["id"]
101-
textures = params["textures"]
69+
id, textures = params["id"], params["textures"]
10270
self.applyTextures(id, textures)
10371

10472
def displayAttributeOnVertices(self, id, name):

src/opengeodeweb_viewer/rpc/mesh/points/points_protocols.py renamed to src/opengeodeweb_viewer/rpc/mesh/points/mesh_points_protocols.py

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,19 @@ def __init__(self):
2020

2121
@exportRpc(mesh_points_prefix + mesh_points_schemas_dict["visibility"]["rpc"])
2222
def setMeshPointsVisibility(self, params):
23-
print(
24-
self.mesh_points_prefix
25-
+ self.mesh_points_schemas_dict["visibility"]["rpc"],
26-
f"{params=}",
27-
flush=True,
23+
validate_schema(
24+
params, self.mesh_points_schemas_dict["visibility"], self.mesh_points_prefix
2825
)
29-
validate_schema(params, self.mesh_points_schemas_dict["visibility"])
30-
id = str(params["id"])
31-
visibility = bool(params["visibility"])
26+
id, visibility = params["id"], params["visibility"]
3227
self.SetPointsVisibility(id, visibility)
3328

3429
@exportRpc(mesh_points_prefix + mesh_points_schemas_dict["color"]["rpc"])
3530
def setMeshPointsColor(self, params):
36-
print(
37-
self.mesh_points_prefix + self.mesh_points_schemas_dict["color"]["rpc"],
38-
f"{params=}",
39-
flush=True,
31+
validate_schema(
32+
params, self.mesh_points_schemas_dict["color"], self.mesh_points_prefix
4033
)
41-
validate_schema(params, self.mesh_points_schemas_dict["color"])
42-
id = str(params["id"])
43-
red, green, blue = (
34+
id, red, green, blue = (
35+
params["id"],
4436
params["color"]["r"],
4537
params["color"]["g"],
4638
params["color"]["b"],
@@ -49,25 +41,18 @@ def setMeshPointsColor(self, params):
4941

5042
@exportRpc(mesh_points_prefix + mesh_points_schemas_dict["size"]["rpc"])
5143
def setMeshPointsSize(self, params):
52-
print(
53-
self.mesh_points_prefix + self.mesh_points_schemas_dict["size"]["rpc"],
54-
f"{params=}",
55-
flush=True,
44+
validate_schema(
45+
params, self.mesh_points_schemas_dict["size"], self.mesh_points_prefix
5646
)
57-
validate_schema(params, self.mesh_points_schemas_dict["size"])
58-
id = str(params["id"])
59-
size = float(params["size"])
47+
id, size = params["id"], params["size"]
6048
self.SetPointsSize(id, size)
6149

6250
@exportRpc(mesh_points_prefix + mesh_points_schemas_dict["vertex_attribute"]["rpc"])
6351
def setMeshPointsVertexAttribute(self, params):
64-
print(
65-
self.mesh_points_prefix
66-
+ self.mesh_points_schemas_dict["vertex_attribute"]["rpc"],
67-
f"{params=}",
68-
flush=True,
52+
validate_schema(
53+
params,
54+
self.mesh_points_schemas_dict["vertex_attribute"],
55+
self.mesh_points_prefix,
6956
)
70-
validate_schema(params, self.mesh_points_schemas_dict["vertex_attribute"])
71-
id = str(params["id"])
72-
name = str(params["name"])
57+
id, name = params["id"], params["name"]
7358
self.displayAttributeOnVertices(id, name)

src/opengeodeweb_viewer/rpc/mesh/polygons/polygons_protocols.py

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,23 @@ def __init__(self):
2020

2121
@exportRpc(mesh_polygons_prefix + mesh_polygons_schemas_dict["visibility"]["rpc"])
2222
def setMeshPolygonsVisibility(self, params):
23-
print(
24-
self.mesh_polygons_prefix
25-
+ self.mesh_polygons_schemas_dict["visibility"]["rpc"],
26-
f"{params=}",
27-
flush=True,
23+
validate_schema(
24+
params,
25+
self.mesh_polygons_schemas_dict["visibility"],
26+
self.mesh_polygons_prefix,
2827
)
29-
validate_schema(params, self.mesh_polygons_schemas_dict["visibility"])
30-
id = params["id"]
31-
visibility = bool(params["visibility"])
28+
id, visibility = params["id"], params["visibility"]
3229
self.SetVisibility(id, visibility)
3330

3431
@exportRpc(mesh_polygons_prefix + mesh_polygons_schemas_dict["color"]["rpc"])
3532
def setMeshPolygonsColor(self, params):
36-
print(
37-
self.mesh_polygons_prefix + self.mesh_polygons_schemas_dict["color"]["rpc"],
38-
f"{params=}",
39-
flush=True,
33+
validate_schema(
34+
params,
35+
self.mesh_polygons_schemas_dict["color"],
36+
self.mesh_polygons_prefix,
4037
)
41-
validate_schema(params, self.mesh_polygons_schemas_dict["color"])
42-
id = params["id"]
43-
red, green, blue = (
38+
id, red, green, blue = (
39+
params["id"],
4440
params["color"]["r"],
4541
params["color"]["g"],
4642
params["color"]["b"],
@@ -51,28 +47,22 @@ def setMeshPolygonsColor(self, params):
5147
mesh_polygons_prefix + mesh_polygons_schemas_dict["vertex_attribute"]["rpc"]
5248
)
5349
def setMeshPolygonsVertexAttribute(self, params):
54-
print(
55-
self.mesh_polygons_prefix
56-
+ self.mesh_polygons_schemas_dict["vertex_attribute"]["rpc"],
57-
f"{params=}",
58-
flush=True,
50+
validate_schema(
51+
params,
52+
self.mesh_polygons_schemas_dict["vertex_attribute"],
53+
self.mesh_polygons_prefix,
5954
)
60-
validate_schema(params, self.mesh_polygons_schemas_dict["vertex_attribute"])
61-
id = params["id"]
62-
name = str(params["name"])
55+
id, name = params["id"], params["name"]
6356
self.displayAttributeOnVertices(id, name)
6457

6558
@exportRpc(
6659
mesh_polygons_prefix + mesh_polygons_schemas_dict["polygon_attribute"]["rpc"]
6760
)
6861
def setMeshPolygonsPolygonAttribute(self, params):
69-
print(
70-
self.mesh_polygons_prefix
71-
+ self.mesh_polygons_schemas_dict["polygon_attribute"]["rpc"],
72-
f"{params=}",
73-
flush=True,
62+
validate_schema(
63+
params,
64+
self.mesh_polygons_schemas_dict["polygon_attribute"],
65+
self.mesh_polygons_prefix,
7466
)
75-
validate_schema(params, self.mesh_polygons_schemas_dict["polygon_attribute"])
76-
id = params["id"]
77-
name = str(params["name"])
67+
id, name = params["id"], params["name"]
7868
self.displayAttributeOnCells(id, name)

0 commit comments

Comments
 (0)