Skip to content

Commit 836d5af

Browse files
committed
work in progress
1 parent bc5c35c commit 836d5af

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# Third party imports
55
import vtk
66
from wslink import register as exportRpc
7+
from opengeodeweb_microservice.database.data import Data
78

89
# Local application imports
910
from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema
@@ -37,15 +38,15 @@ def registerMesh(self, params):
3738
reader.SetFileName(file_path)
3839
mapper = vtk.vtkPolyDataMapper()
3940
mapper.SetInputConnection(reader.GetOutputPort())
40-
41+
4142
actor = vtk.vtkActor()
4243
actor.SetMapper(mapper)
43-
44+
4445
renderer = self.get_renderer()
4546
renderer.AddActor(actor)
46-
47+
4748
self.register_object(data_id, reader, None, actor, mapper, {})
48-
49+
4950
reader.Update()
5051
data_object = reader.GetOutput()
5152
data_set = vtk.vtkDataSet.SafeDownCast(data_object)
@@ -67,7 +68,7 @@ def registerMesh(self, params):
6768
elif max_id >= 7:
6869
max_dimension = "polyhedra"
6970
self.get_object(data_id)["max_dimension"] = max_dimension
70-
71+
7172
renderWindow = self.getView("-1")
7273
renderer.ResetCamera()
7374
renderWindow.Render()
@@ -110,8 +111,25 @@ def meshApplyTextures(self, params):
110111
validate_schema(
111112
params, self.mesh_schemas_dict["apply_textures"], self.mesh_prefix
112113
)
113-
data_id, textures = params["id"], params["textures"]
114-
self.applyTextures(data_id, textures)
114+
data_id, textures_info = params["id"], params["textures"]
115+
textures_data = []
116+
for tex_info in textures_info:
117+
texture_id = tex_info["id"]
118+
texture_name = tex_info["texture_name"]
119+
texture_data = Data.get(texture_id)
120+
if texture_data and texture_data.geode_object == "RasterImage2D":
121+
textures_data.append(
122+
{"texture_name": texture_name, "texture_data": texture_data}
123+
)
124+
self.applyTextures(data_id, textures_data)
125+
126+
def applyTextures(self, mesh_id: str, textures_data: list):
127+
for tex_info in textures_data:
128+
texture_name = tex_info["texture_name"]
129+
texture_data = tex_info["texture_data"]
130+
self.apply_single_texture(
131+
mesh_id, texture_data.viewable_file_name, texture_name
132+
)
115133

116134
def displayAttributeOnVertices(self, data_id, name):
117135
reader = self.get_object(data_id)["reader"]

src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"required": [
2424
"texture_name",
25-
"texture_file_name"
25+
"id"
2626
],
2727
"additionalProperties": false
2828
},

src/tests/mesh/test_mesh_protocols.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ def test_color(server, dataset_factory):
5656

5757
def test_apply_textures(server, dataset_factory):
5858
test_register_mesh(server, dataset_factory)
59+
texture_entry = dataset_factory(
60+
id="987654321",
61+
viewable_file_name="hat_lambert2SG.vti",
62+
geode_object="RasterImage2D",
63+
)
5964

6065
server.call(
6166
VtkMeshView.mesh_prefix

0 commit comments

Comments
 (0)