Skip to content

Commit a532994

Browse files
VtkView init
1 parent 0d77266 commit a532994

File tree

2 files changed

+43
-40
lines changed

2 files changed

+43
-40
lines changed

src/opengeodeweb_viewer/rpc/viewer/protocols.py

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,23 @@
1818
schemas_dict = get_schemas_dict(schemas_dir)
1919

2020
class VtkViewerView(VtkView):
21+
def __init__(self):
22+
super().__init__()
2123

2224
@exportRpc(schemas_dict["create_visualization"]["rpc"])
2325
def create_visualization(self, params):
2426
validate_schema(params, schemas_dict["create_visualization"])
25-
renderWindow = super().getView("-1")
27+
renderWindow = self.getView("-1")
2628
renderer = renderWindow.GetRenderers().GetFirstRenderer()
2729
renderer.SetBackground([180 / 255, 180 / 255, 180 / 255])
2830
renderer.ResetCamera()
2931
renderWindow.Render()
30-
super().render()
32+
self.render()
3133

3234
@exportRpc(schemas_dict["set_viewer_background_color"]["rpc"])
3335
def set_viewer_background_color(self, params):
3436
validate_schema(params, schemas_dict["set_viewer_background_color"])
35-
renderWindow = super().getView("-1")
37+
renderWindow = self.getView("-1")
3638
renderer = renderWindow.GetRenderers().GetFirstRenderer()
3739
red = params["red"]
3840
green = params["green"]
@@ -41,16 +43,16 @@ def set_viewer_background_color(self, params):
4143
renderer.SetBackground([red, green, blue])
4244
renderer.ResetCamera()
4345
renderWindow.Render()
44-
super().render()
46+
self.render()
4547

4648
@exportRpc(schemas_dict["reset_camera"]["rpc"])
4749
def reset_camera(self, params):
4850
print(f"{params=}", flush=True)
4951
validate_schema(params, schemas_dict["reset_camera"])
50-
renderWindow = super().getView("-1")
52+
renderWindow = self.getView("-1")
5153
renderWindow.GetRenderers().GetFirstRenderer().ResetCamera()
5254
renderWindow.Render()
53-
super().render()
55+
self.render()
5456

5557
@exportRpc(schemas_dict["create_object_pipeline"]["rpc"])
5658
def create_object_pipeline(self, params):
@@ -73,22 +75,22 @@ def create_object_pipeline(self, params):
7375
mapper = vtk.vtkDataSetMapper()
7476
mapper.SetInputConnection(reader.GetOutputPort())
7577

76-
super().register_object(id, reader, filter, actor, mapper, {})
78+
self.register_object(id, reader, filter, actor, mapper, {})
7779

78-
reader.SetFileName(os.path.join(super().DATA_FOLDER_PATH, file_name))
80+
reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, file_name))
7981

8082
actor.SetMapper(mapper)
8183
mapper.SetColorModeToMapScalars()
8284
mapper.SetResolveCoincidentTopologyLineOffsetParameters(1, -0.1)
8385
mapper.SetResolveCoincidentTopologyPolygonOffsetParameters(2, 0)
8486
mapper.SetResolveCoincidentTopologyPointOffsetParameter(-2)
8587

86-
renderWindow = super().getView("-1")
88+
renderWindow = self.getView("-1")
8789
renderer = renderWindow.GetRenderers().GetFirstRenderer()
8890
renderer.AddActor(actor)
8991
renderer.ResetCamera()
9092
renderWindow.Render()
91-
super().render()
93+
self.render()
9294
except Exception as e:
9395
print("error : ", str(e), flush=True)
9496

@@ -97,36 +99,37 @@ def delete_object_pipeline(self, params):
9799
validate_schema(params, schemas_dict["delete_object_pipeline"])
98100
print(f"{params=}", flush=True)
99101
id = params["id"]
100-
object = super().get_object(id)
102+
object = self.get_object(id)
101103
actor = object["actor"]
102-
renderWindow = super().getView("-1")
104+
renderWindow = self.getView("-1")
103105
renderer = renderWindow.GetRenderers().GetFirstRenderer()
104106
renderer.RemoveActor(actor)
105107
print(f"{object=}", flush=True)
106-
super().deregister_object(id)
107-
super().render()
108+
self.deregister_object(id)
109+
self.render()
108110

109111
@exportRpc(schemas_dict["toggle_object_visibility"]["rpc"])
110112
def toggle_object_visibility(self, params):
111113
validate_schema(params, schemas_dict["toggle_object_visibility"])
112114
print(f"{params=}", flush=True)
113115
id = params["id"]
114116
is_visible = params["is_visible"]
115-
object = super().get_object(id)
117+
object = self.get_object(id)
116118
actor = object["actor"]
117119
actor.SetVisibility(is_visible)
118-
super().render()
120+
self.render()
119121

120122

121123
@exportRpc(schemas_dict["take_screenshot"]["rpc"])
122124
def takeScreenshot(self, params):
125+
self.__init__()
123126
validate_schema(params, schemas_dict["take_screenshot"])
124127
print(f"{params=}", flush=True)
125128
filename = params["filename"]
126129
output_extension = params["output_extension"]
127130
include_background = params["include_background"]
128-
renderWindow = super().getView("-1")
129-
renderer = super().get_renderer()
131+
renderWindow = self.getView("-1")
132+
renderer = self.get_renderer()
130133

131134
w2if = vtkWindowToImageFilter()
132135

@@ -153,15 +156,15 @@ def takeScreenshot(self, params):
153156
raise Exception("output_extension not supported")
154157

155158
new_filename = filename + '.' + output_extension
156-
file_path = os.path.join(super().DATA_FOLDER_PATH, new_filename)
159+
file_path = os.path.join(self.DATA_FOLDER_PATH, new_filename)
157160
writer.SetFileName(file_path)
158161
writer.SetInputConnection(w2if.GetOutputPort())
159162
writer.Write()
160163

161164
with open(file_path, "rb") as file:
162165
file_content = file.read()
163166

164-
return {"blob": super().addAttachment(file_content)}
167+
return {"blob": self.addAttachment(file_content)}
165168

166169

167170

@@ -175,7 +178,7 @@ def apply_textures(self, params):
175178
textures_array = []
176179
images_reader_array = []
177180

178-
data = super().get_object(id)
181+
data = self.get_object(id)
179182
mapper = data["mapper"]
180183
actor = data["actor"]
181184
reader = data["reader"]
@@ -191,7 +194,7 @@ def apply_textures(self, params):
191194
new_texture = vtk.vtkTexture()
192195
image_reader = vtk.vtkXMLImageDataReader()
193196
image_reader.SetFileName(
194-
os.path.join(super().DATA_FOLDER_PATH, texture_file_name)
197+
os.path.join(self.DATA_FOLDER_PATH, texture_file_name)
195198
)
196199

197200
shader_texture_name = f"VTK_TEXTURE_UNIT_{index}"
@@ -218,15 +221,15 @@ def apply_textures(self, params):
218221
textures_array.append(new_texture)
219222
images_reader_array.append(image_reader)
220223

221-
super().render()
224+
self.render()
222225

223226
@exportRpc(schemas_dict["update_data"]["rpc"])
224227
def update_data(self, params):
225228
validate_schema(params, schemas_dict["update_data"])
226229
print(f"{params=}", flush=True)
227230
id = params["id"]
228231

229-
data = super().get_object(id)
232+
data = self.get_object(id)
230233
reader = data["reader"]
231234
reader.Update()
232235
mapper = data["mapper"]
@@ -240,7 +243,7 @@ def update_data(self, params):
240243
tag,
241244
)
242245
mapper.SetScalarRange(scalars.GetRange())
243-
super().render()
246+
self.render()
244247

245248
@exportRpc(schemas_dict["get_point_position"]["rpc"])
246249
def get_point_position(self, params):
@@ -249,53 +252,53 @@ def get_point_position(self, params):
249252
y = float(params["y"])
250253
xyz = [x, y, 0.0]
251254
picker = vtk.vtkWorldPointPicker()
252-
picker.Pick(xyz, super().get_renderer())
255+
picker.Pick(xyz, self.get_renderer())
253256
ppos = picker.GetPickPosition()
254257
return {"x": ppos[0], "y": ppos[1], "z": ppos[2]}
255258

256259
@exportRpc(schemas_dict["reset"]["rpc"])
257260
def reset(self, params):
258261
validate_schema(params, schemas_dict["reset"])
259-
renderWindow = super().getView("-1")
262+
renderWindow = self.getView("-1")
260263
renderWindow.GetRenderers().GetFirstRenderer().RemoveAllViewProps()
261264

262265
@exportRpc(schemas_dict["set_opacity"]["rpc"])
263266
def set_opacity(self, params):
264267
validate_schema(params, schemas_dict["set_opacity"])
265268
id = params["id"]
266269
opacity = float(params["opacity"])
267-
actor = super().get_object(id)["actor"]
270+
actor = self.get_object(id)["actor"]
268271
actor.GetProperty().SetOpacity(opacity)
269-
super().render()
272+
self.render()
270273

271274
@exportRpc(schemas_dict["toggle_edge_visibility"]["rpc"])
272275
def setEdgeVisibility(self, params):
273276
validate_schema(params, schemas_dict["toggle_edge_visibility"])
274277
print(f"{params=}", flush=True)
275278
id = str(params["id"])
276279
visibility = bool(params["visibility"])
277-
actor = super().get_object(id)["actor"]
280+
actor = self.get_object(id)["actor"]
278281
actor.GetProperty().SetEdgeVisibility(visibility)
279-
super().render()
282+
self.render()
280283

281284
@exportRpc(schemas_dict["toggle_point_visibility"]["rpc"])
282285
def setPointVisibility(self, params):
283286
validate_schema(params, schemas_dict["toggle_point_visibility"])
284287
id = params["id"]
285288
visibility = bool(params["visibility"])
286-
actor = super().get_object(id)["actor"]
289+
actor = self.get_object(id)["actor"]
287290
actor.GetProperty().SetVertexVisibility(visibility)
288-
super().render()
291+
self.render()
289292

290293
@exportRpc(schemas_dict["set_point_size"]["rpc"])
291294
def setPointSize(self, params):
292295
validate_schema(params, schemas_dict["set_point_size"])
293296
id = params["id"]
294297
size = float(params["size"])
295298
print(f"{size=}", flush=True)
296-
actor = super().get_object(id)["actor"]
299+
actor = self.get_object(id)["actor"]
297300
actor.GetProperty().SetPointSize(size)
298-
super().render()
301+
self.render()
299302

300303
@exportRpc(schemas_dict["set_color"]["rpc"])
301304
def setColor(self, params):
@@ -304,7 +307,7 @@ def setColor(self, params):
304307
red = params["red"]
305308
green = params["green"]
306309
blue = params["blue"]
307-
super().get_object(id)["mapper"].ScalarVisibilityOff()
308-
actor = super().get_object(id)["actor"]
310+
self.get_object(id)["mapper"].ScalarVisibilityOff()
311+
actor = self.get_object(id)["actor"]
309312
actor.GetProperty().SetColor(red, green, blue)
310-
super().render()
313+
self.render()

src/tests/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ class Starter(ProcessStarter):
143143
def server(xprocess):
144144
name, Starter, Monitor = HELPER.get_xprocess_args()
145145
os.environ["PYTHON_ENV"] = "test"
146-
config.test_config()
146+
config.test_config(os.path.dirname(__file__))
147+
print("server", os.environ.get("DATA_FOLDER_PATH"), flush=True)
147148
_, log = xprocess.ensure(name, Starter)
148149
print(log)
149-
print("server", os.environ.get("DATA_FOLDER_PATH"), flush=True)
150150
monitor = Monitor(log)
151151
yield monitor
152152

0 commit comments

Comments
 (0)