Skip to content

Commit dab4e97

Browse files
committed
more types
1 parent 8a7539a commit dab4e97

18 files changed

+313
-216
lines changed

src/opengeodeweb_viewer/object/object_methods.py

Lines changed: 38 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22
import os
33

44
# Third party imports
5-
import vtk
5+
from vtkmodules.vtkIOXML import vtkXMLDataReader, vtkXMLImageDataReader
6+
from vtkmodules.vtkCommonExecutionModel import vtkAlgorithm
7+
from vtkmodules.vtkRenderingCore import vtkMapper, vtkActor, vtkTexture
8+
from vtkmodules.vtkCommonDataModel import vtkDataObject
69

710
# Local application imports
8-
from opengeodeweb_viewer.vtk_protocol import VtkView
11+
from opengeodeweb_viewer.vtk_protocol import VtkView, vtkData
912

1013

1114
class VtkObjectView(VtkView):
@@ -16,37 +19,34 @@ def registerObject(
1619
self,
1720
id: str,
1821
file_name: str,
19-
reader: vtk.vtkDataReader,
20-
filter: vtk.vtkAlgorithm | None,
21-
mapper: vtk.vtkMapper,
22+
data: vtkData,
2223
) -> None:
23-
actor = vtk.vtkActor()
24-
self.register_object(id, reader, filter, actor, mapper, {})
25-
reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, id, file_name))
26-
actor.SetMapper(mapper)
27-
mapper.SetColorModeToMapScalars()
28-
mapper.SetResolveCoincidentTopologyLineOffsetParameters(1, -0.1)
29-
mapper.SetResolveCoincidentTopologyPolygonOffsetParameters(2, 0)
30-
mapper.SetResolveCoincidentTopologyPointOffsetParameter(-2)
24+
self.register_object(id, data)
25+
data.reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, id, file_name))
26+
data.actor.SetMapper(data.mapper)
27+
data.mapper.SetColorModeToMapScalars()
28+
data.mapper.SetResolveCoincidentTopologyLineOffsetParameters(1, -0.1)
29+
data.mapper.SetResolveCoincidentTopologyPolygonOffsetParameters(2, 0)
30+
data.mapper.SetResolveCoincidentTopologyPointOffsetParameter(-2)
3131

3232
renderWindow = self.getView("-1")
3333
renderer = renderWindow.GetRenderers().GetFirstRenderer()
34-
renderer.AddActor(actor)
34+
renderer.AddActor(data.actor)
3535
renderer.ResetCamera()
3636
renderWindow.Render()
3737
self.render()
3838

3939
def deregisterObject(self, data_id: str) -> None:
40-
actor = self.get_object(data_id)["actor"]
40+
actor = self.get_object(data_id).actor
4141
renderWindow = self.getView("-1")
4242
renderer = renderWindow.GetRenderers().GetFirstRenderer()
4343
renderer.RemoveActor(actor)
4444
self.deregister_object(data_id)
4545
self.render()
4646

4747
def applyTextures(self, data_id: str, textures: list[dict[str, str]]) -> None:
48-
textures_array: list[vtk.vtkTexture] = []
49-
images_reader_array: list[vtk.vtkXMLImageDataReader] = []
48+
textures_array: list[vtkTexture] = []
49+
images_reader_array: list[vtkXMLImageDataReader] = []
5050

5151
data = self.get_object(data_id)
5252
mapper = data["mapper"]
@@ -61,26 +61,24 @@ def applyTextures(self, data_id: str, textures: list[dict[str, str]]) -> None:
6161
id_texture = value["id"]
6262
print(f"{texture_name=} {id_texture=}", flush=True)
6363

64-
new_texture = vtk.vtkTexture()
65-
image_reader = vtk.vtkXMLImageDataReader()
64+
new_texture = vtkTexture()
65+
image_reader = vtkXMLImageDataReader()
6666
texture_path = self.get_data_file_path(data_id, id_texture)
6767
image_reader.SetFileName(texture_path)
6868

6969
shader_texture_name = f"VTK_TEXTURE_UNIT_{index}"
7070
polydata_mapper.MapDataArrayToMultiTextureAttribute(
7171
shader_texture_name,
7272
texture_name,
73-
vtk.vtkDataObject.FIELD_ASSOCIATION_POINTS,
73+
vtkDataObject.FIELD_ASSOCIATION_POINTS,
7474
)
7575

7676
if index == 0:
7777
new_texture.SetBlendingMode(
78-
vtk.vtkTexture.VTK_TEXTURE_BLENDING_MODE_REPLACE
78+
vtkTexture.VTK_TEXTURE_BLENDING_MODE_REPLACE
7979
)
8080
else:
81-
new_texture.SetBlendingMode(
82-
vtk.vtkTexture.VTK_TEXTURE_BLENDING_MODE_ADD
83-
)
81+
new_texture.SetBlendingMode(vtkTexture.VTK_TEXTURE_BLENDING_MODE_ADD)
8482

8583
images_reader_array.append(image_reader)
8684
new_texture.SetInputConnection(image_reader.GetOutputPort())
@@ -93,62 +91,62 @@ def applyTextures(self, data_id: str, textures: list[dict[str, str]]) -> None:
9391
self.render()
9492

9593
def SetVisibility(self, data_id: str, visibility: bool) -> None:
96-
actor = self.get_object(data_id)["actor"]
94+
actor = self.get_object(data_id).actor
9795
actor.SetVisibility(visibility)
9896
self.render()
9997

10098
def SetOpacity(self, data_id: str, opacity: float) -> None:
101-
actor = self.get_object(data_id)["actor"]
99+
actor = self.get_object(data_id).actor
102100
actor.GetProperty().SetOpacity(opacity)
103101
self.render()
104102

105103
def SetColor(self, data_id: str, red: int, green: int, blue: int) -> None:
106-
mapper = self.get_object(data_id)["mapper"]
104+
mapper = self.get_object(data_id).mapper
107105
mapper.ScalarVisibilityOff()
108-
actor = self.get_object(data_id)["actor"]
106+
actor = self.get_object(data_id).actor
109107
actor.GetProperty().SetColor([red / 255, green / 255, blue / 255])
110108
self.render()
111109

112110
def SetEdgesVisibility(self, data_id: str, visibility: bool) -> None:
113-
actor = self.get_object(data_id)["actor"]
114-
max_dimension = self.get_object(data_id)["max_dimension"]
111+
actor = self.get_object(data_id).actor
112+
max_dimension = self.get_object(data_id).max_dimension
115113
if max_dimension == "edges":
116114
self.SetVisibility(data_id, visibility)
117115
else:
118116
actor.GetProperty().SetEdgeVisibility(visibility)
119117
self.render()
120118

121119
def SetEdgesWidth(self, data_id: str, width: float) -> None:
122-
actor = self.get_object(data_id)["actor"]
120+
actor = self.get_object(data_id).actor
123121
actor.GetProperty().SetEdgeWidth(width)
124122
self.render()
125123

126124
def SetEdgesColor(self, data_id: str, red: int, green: int, blue: int) -> None:
127-
actor = self.get_object(data_id)["actor"]
128-
max_dimension = self.get_object(data_id)["max_dimension"]
125+
actor = self.get_object(data_id).actor
126+
max_dimension = self.get_object(data_id).max_dimension
129127
if max_dimension == "edges":
130128
self.SetColor(data_id, red, green, blue)
131129
else:
132130
actor.GetProperty().SetEdgeColor([red / 255, green / 255, blue / 255])
133131
self.render()
134132

135133
def SetPointsVisibility(self, data_id: str, visibility: bool) -> None:
136-
actor = self.get_object(data_id)["actor"]
137-
max_dimension = self.get_object(data_id)["max_dimension"]
134+
actor = self.get_object(data_id).actor
135+
max_dimension = self.get_object(data_id).max_dimension
138136
if max_dimension == "points":
139137
self.SetVisibility(data_id, visibility)
140138
else:
141139
actor.GetProperty().SetVertexVisibility(visibility)
142140
self.render()
143141

144142
def SetPointsSize(self, data_id: str, size: float) -> None:
145-
actor = self.get_object(data_id)["actor"]
143+
actor = self.get_object(data_id).actor
146144
actor.GetProperty().SetPointSize(size)
147145
self.render()
148146

149147
def SetPointsColor(self, data_id: str, red: int, green: int, blue: int) -> None:
150-
actor = self.get_object(data_id)["actor"]
151-
max_dimension = self.get_object(data_id)["max_dimension"]
148+
actor = self.get_object(data_id).actor
149+
max_dimension = self.get_object(data_id).max_dimension
152150
if max_dimension == "points":
153151
self.SetColor(data_id, red, green, blue)
154152
else:
@@ -158,15 +156,15 @@ def SetPointsColor(self, data_id: str, red: int, green: int, blue: int) -> None:
158156
def SetBlocksVisibility(
159157
self, data_id: str, block_ids: list[int], visibility: bool
160158
) -> None:
161-
mapper = self.get_object(data_id)["mapper"]
159+
mapper = self.get_object(data_id).mapper
162160
for block_id in block_ids:
163161
mapper.SetBlockVisibility(block_id, visibility)
164162
self.render()
165163

166164
def SetBlocksColor(
167165
self, data_id: str, block_ids: list[int], red: int, green: int, blue: int
168166
) -> None:
169-
mapper = self.get_object(data_id)["mapper"]
167+
mapper = self.get_object(data_id).mapper
170168
for block_id in block_ids:
171169
mapper.SetBlockColor(block_id, [red / 255, green / 255, blue / 255])
172170
self.render()

src/opengeodeweb_viewer/rpc/generic/generic_protocols.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22
import os
33

44
# Third party imports
5-
from vtk.web import protocols as vtk_protocols
6-
from wslink import register as exportRpc
5+
from vtk.web import protocols as vtk_protocols # type: ignore
6+
from wslink import register as exportRpc # type: ignore
77

88
# Local application imports
99
from opengeodeweb_viewer.vtk_protocol import VtkView
1010
from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView
1111
from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView
12-
from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema
12+
from opengeodeweb_viewer.utils_functions import (
13+
get_schemas_dict,
14+
validate_schema,
15+
RpcParams,
16+
)
1317
from . import schemas
1418

1519

@@ -29,7 +33,7 @@ def __init__(
2933
@exportRpc(generic_prefix + generic_schemas_dict["register"]["rpc"])
3034
def register(self, rpc_params: RpcParams) -> None:
3135
validate_schema(
32-
params, self.generic_schemas_dict["register"], self.generic_prefix
36+
rpc_params, self.generic_schemas_dict["register"], self.generic_prefix
3337
)
3438
params = schemas.Register.from_dict(rpc_params)
3539
data_id = params.id
@@ -44,7 +48,7 @@ def register(self, rpc_params: RpcParams) -> None:
4448
@exportRpc(generic_prefix + generic_schemas_dict["deregister"]["rpc"])
4549
def deregister(self, rpc_params: RpcParams) -> None:
4650
validate_schema(
47-
params, self.generic_schemas_dict["deregister"], self.generic_prefix
51+
rpc_params, self.generic_schemas_dict["deregister"], self.generic_prefix
4852
)
4953
params = schemas.Deregister.from_dict(rpc_params)
5054
data_id = params.id

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22
import os
33

44
# Third party imports
5-
from wslink import register as exportRpc
5+
from wslink import register as exportRpc # type: ignore
66

77
# Local application imports
8-
from opengeodeweb_viewer.utils_functions import get_schemas_dict, validate_schema
8+
from opengeodeweb_viewer.utils_functions import (
9+
get_schemas_dict,
10+
validate_schema,
11+
RpcParams,
12+
)
913
from opengeodeweb_viewer.rpc.mesh.mesh_protocols import VtkMeshView
1014
from . import schemas
1115

@@ -22,15 +26,17 @@ def __init__(self) -> None:
2226
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["visibility"]["rpc"])
2327
def setMeshEdgesVisibility(self, rpc_params: RpcParams) -> None:
2428
validate_schema(
25-
params, self.mesh_edges_schemas_dict["visibility"], self.mesh_edges_prefix
29+
rpc_params,
30+
self.mesh_edges_schemas_dict["visibility"],
31+
self.mesh_edges_prefix,
2632
)
2733
params = schemas.Visibility.from_dict(rpc_params)
2834
self.SetEdgesVisibility(params.id, params.visibility)
2935

3036
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["color"]["rpc"])
3137
def setMeshEdgesColor(self, rpc_params: RpcParams) -> None:
3238
validate_schema(
33-
params, self.mesh_edges_schemas_dict["color"], self.mesh_edges_prefix
39+
rpc_params, self.mesh_edges_schemas_dict["color"], self.mesh_edges_prefix
3440
)
3541
params = schemas.Color.from_dict(rpc_params)
3642
color = params.color
@@ -39,7 +45,7 @@ def setMeshEdgesColor(self, rpc_params: RpcParams) -> None:
3945
@exportRpc(mesh_edges_prefix + mesh_edges_schemas_dict["width"]["rpc"])
4046
def setMeshEdgesWidth(self, rpc_params: RpcParams) -> None:
4147
validate_schema(
42-
params, self.mesh_edges_schemas_dict["width"], self.mesh_edges_prefix
48+
rpc_params, self.mesh_edges_schemas_dict["width"], self.mesh_edges_prefix
4349
)
4450
params = schemas.Color.from_dict(rpc_params)
4551
self.SetEdgesWidth(params.id, params.width)

0 commit comments

Comments
 (0)