Skip to content

Commit 0908195

Browse files
test points
1 parent 7dfbd0a commit 0908195

File tree

9 files changed

+104
-17
lines changed

9 files changed

+104
-17
lines changed

src/opengeodeweb_viewer/object/object_methods.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,21 +108,35 @@ def SetColor(self, id, red, green, blue):
108108

109109
def SetEdgesVisibility(self, id, visibility):
110110
actor = self.get_object(id)["actor"]
111-
actor.GetProperty().SetEdgeVisibility(visibility)
111+
max_dimension = self.get_object(id)["max_dimension"]
112+
if max_dimension == "edges":
113+
self.SetVisibility(id, visibility)
114+
else:
115+
116+
actor.GetProperty().SetEdgeVisibility(visibility)
112117
self.render()
113118

114-
def SetEdgesSize(self, id, size):
119+
def SetEdgesWidth(self, id, width):
115120
actor = self.get_object(id)["actor"]
116-
actor.GetProperty().SetEdgeWidth(size)
121+
actor.GetProperty().UseLineWidthForEdgeThicknessOn()
122+
actor.GetProperty().SetEdgeWidth(width)
117123
self.render()
118124

119125
def SetEdgesColor(self, id, red, green, blue):
120126
actor = self.get_object(id)["actor"]
121-
actor.GetProperty().SetEdgeColor([red / 255, green / 255, blue / 255])
127+
max_dimension = self.get_object(id)["max_dimension"]
128+
if max_dimension == "edges":
129+
self.SetColor(id, red, green, blue)
130+
else:
131+
# actor.GetProperty().SetEdgeColor([red / 255, green / 255, blue / 255])
122132
self.render()
123133

124134
def SetPointsVisibility(self, id, visibility):
125135
actor = self.get_object(id)["actor"]
136+
# max_dimension = self.get_object(id)["max_dimension"]
137+
# if max_dimension == "points":
138+
# self.SetVisibility(id, visibility)
139+
# else:
126140
actor.GetProperty().SetVertexVisibility(visibility)
127141
actor.GetProperty().SetEdgeVisibility(visibility)
128142
self.render()
@@ -134,6 +148,10 @@ def SetPointsSize(self, id, size):
134148

135149
def SetPointsColor(self, id, red, green, blue):
136150
actor = self.get_object(id)["actor"]
151+
# max_dimension = self.get_object(id)["max_dimension"]
152+
# if max_dimension == "points":
153+
# self.SetColor(id, red, green, blue)
154+
# else:
137155
actor.GetProperty().SetVertexColor([red / 255, green / 255, blue / 255])
138156
self.render()
139157

src/opengeodeweb_viewer/rpc/mesh/edges/mesh_edges_protocols.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ def setMeshEdgesColor(self, params):
3939
)
4040
self.SetEdgesColor(id, red, green, blue)
4141

42-
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["size"]["rpc"])
43-
def setMeshEdgesSize(self, params):
42+
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["width"]["rpc"])
43+
def setMeshEdgesWidth(self, params):
4444
validate_schema(
45-
params, self.mesh_edges_schemas_dict["size"], self.mesh_edges_prefix
45+
params, self.mesh_edges_schemas_dict["width"], self.mesh_edges_prefix
4646
)
47-
id, size = params["id"], params["size"]
48-
self.SetEdgesSize(id, size)
47+
id, size = params["id"], params["width"]
48+
self.SetEdgesWidth(id, width)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"rpc": "size",
3+
"type": "object",
4+
"properties": {
5+
"id": {
6+
"type": "string",
7+
"minLength": 1
8+
},
9+
"width": {
10+
"type": "integer"
11+
}
12+
},
13+
"required": [
14+
"id",
15+
"width"
16+
],
17+
"additionalProperties": false
18+
}

src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,33 @@ def __init__(self):
2323
def registerMesh(self, params):
2424
validate_schema(params, self.mesh_schemas_dict["register"], self.mesh_prefix)
2525
id, file_name = params["id"], params["file_name"]
26-
try:
27-
reader = vtk.vtkXMLGenericDataObjectReader()
28-
filter = {}
29-
mapper = vtk.vtkDataSetMapper()
30-
mapper.SetInputConnection(reader.GetOutputPort())
31-
self.registerObject(id, file_name, reader, filter, mapper)
32-
except Exception as e:
33-
print("error : ", str(e), flush=True)
26+
# try:
27+
reader = vtk.vtkXMLGenericDataObjectReader()
28+
filter = {}
29+
mapper = vtk.vtkDataSetMapper()
30+
mapper.SetInputConnection(reader.GetOutputPort())
31+
self.registerObject(id, file_name, reader, filter, mapper)
32+
33+
data_object = reader.GetOutput()
34+
data_set = vtk.vtkDataSet.SafeDownCast(data_object)
35+
cell_types = vtk.vtkCellTypes()
36+
data_set.GetCellTypes(cell_types)
37+
cell_data = cell_types.GetCellTypesArray()
38+
max_id = -1
39+
for t in range(cell_data.GetSize()):
40+
t_id = cell_data.GetValue(t)
41+
max_id = max(max_id, t_id)
42+
print(f"{max_id=}", flush=True)
43+
max_dimension = ""
44+
if max_id < 3:
45+
max_dimension = "points"
46+
elif max_id < 5:
47+
max_dimension = "edges"
48+
elif max_id < 7:
49+
max_dimension = "polygons"
50+
elif max_id >= 7:
51+
max_dimension = "polyhedra"
52+
self.get_data_base()[id]["max_dimension"] = max_dimension
3453

3554
@exportRpc(mesh_prefix + mesh_schemas_dict["deregister"]["rpc"])
3655
def deregisterMesh(self, params):
9.36 KB
Loading
6.13 KB
Loading
1.05 KB
Loading
2.52 KB
Loading

src/tests/mesh/points/test_mesh_points_protocols.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
# Third party imports
44
from opengeodeweb_viewer.rpc.mesh.points.mesh_points_protocols import VtkMeshPointsView
5+
from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView
56

67
# Local application imports
78
from src.tests.mesh.test_mesh_protocols import test_register_mesh
@@ -41,3 +42,34 @@ def test_points_color(server):
4142
[{"id": "123456789", "color": {"r": 255, "g": 0, "b": 0}}],
4243
)
4344
assert server.compare_image(3, "mesh/points/color.jpeg") == True
45+
46+
47+
def test_points_visibility_with_point_set(server):
48+
49+
server.call(
50+
VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"],
51+
[{"id": "123456789", "file_name": "points.vtp"}],
52+
)
53+
assert server.compare_image(3, "mesh/points/register_point_set.jpeg") == True
54+
55+
server.call(
56+
VtkMeshPointsView.mesh_points_prefix
57+
+ VtkMeshPointsView.mesh_points_schemas_dict["size"]["rpc"],
58+
[{"id": "123456789", "size": 10}],
59+
)
60+
assert server.compare_image(3, "mesh/points/point_set_size.jpeg") == True
61+
62+
server.call(
63+
VtkMeshPointsView.mesh_points_prefix
64+
+ VtkMeshPointsView.mesh_points_schemas_dict["color"]["rpc"],
65+
[{"id": "123456789", "color": {"r": 255, "g": 0, "b": 0}}],
66+
)
67+
assert server.compare_image(3, "mesh/points/point_set_color.jpeg") == True
68+
69+
server.call(
70+
VtkMeshPointsView.mesh_points_prefix
71+
+ VtkMeshPointsView.mesh_points_schemas_dict["visibility"]["rpc"],
72+
[{"id": "123456789", "visibility": False}],
73+
)
74+
assert server.compare_image(3, "mesh/points/point_set_visibility.jpeg") == True
75+

0 commit comments

Comments
 (0)