Skip to content

Commit b1741ee

Browse files
Merge pull request #77 from Geode-solutions/fix/points_and_edges_visibility
new data pointSet & edgedCurve
2 parents ab43d95 + 87e735a commit b1741ee

32 files changed

+205
-55
lines changed

src/opengeodeweb_viewer/object/object_methods.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,23 +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+
actor.GetProperty().SetEdgeVisibility(visibility)
112116
self.render()
113117

114-
def SetEdgesSize(self, id, size):
118+
def SetEdgesWidth(self, id, width):
115119
actor = self.get_object(id)["actor"]
116-
actor.GetProperty().SetEdgeWidth(size)
120+
actor.GetProperty().SetEdgeWidth(width)
117121
self.render()
118122

119123
def SetEdgesColor(self, id, red, green, blue):
120124
actor = self.get_object(id)["actor"]
121-
actor.GetProperty().SetEdgeColor([red / 255, green / 255, blue / 255])
125+
max_dimension = self.get_object(id)["max_dimension"]
126+
if max_dimension == "edges":
127+
self.SetColor(id, red, green, blue)
128+
else:
129+
actor.GetProperty().SetEdgeColor([red / 255, green / 255, blue / 255])
122130
self.render()
123131

124132
def SetPointsVisibility(self, id, visibility):
125133
actor = self.get_object(id)["actor"]
126-
actor.GetProperty().SetVertexVisibility(visibility)
127-
actor.GetProperty().SetEdgeVisibility(visibility)
134+
max_dimension = self.get_object(id)["max_dimension"]
135+
if max_dimension == "points":
136+
self.SetVisibility(id, visibility)
137+
else:
138+
actor.GetProperty().SetVertexVisibility(visibility)
139+
actor.GetProperty().SetEdgeVisibility(visibility)
128140
self.render()
129141

130142
def SetPointsSize(self, id, size):
@@ -134,7 +146,11 @@ def SetPointsSize(self, id, size):
134146

135147
def SetPointsColor(self, id, red, green, blue):
136148
actor = self.get_object(id)["actor"]
137-
actor.GetProperty().SetVertexColor([red / 255, green / 255, blue / 255])
149+
max_dimension = self.get_object(id)["max_dimension"]
150+
if max_dimension == "points":
151+
self.SetColor(id, red, green, blue)
152+
else:
153+
actor.GetProperty().SetVertexColor([red / 255, green / 255, blue / 255])
138154
self.render()
139155

140156
def SetBlocksVisibility(self, id, block_ids, visibility):

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": "number"
11+
}
12+
},
13+
"required": [
14+
"id",
15+
"width"
16+
],
17+
"additionalProperties": false
18+
}

src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,27 @@ def registerMesh(self, params):
2929
mapper = vtk.vtkDataSetMapper()
3030
mapper.SetInputConnection(reader.GetOutputPort())
3131
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
3253
except Exception as e:
3354
print("error : ", str(e), flush=True)
3455

src/opengeodeweb_viewer/rpc/model/model_protocols.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def registerModel(self, params):
3333
attributes = vtkCompositeDataDisplayAttributes()
3434
mapper.SetCompositeDataDisplayAttributes(attributes)
3535
self.registerObject(id, file_name, reader, filter, mapper)
36+
self.get_object(id)["max_dimension"] = "default"
3637
except Exception as e:
3738
print("error : ", str(e), flush=True)
3839

0 commit comments

Comments
 (0)