22import 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
1114class 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 ()
0 commit comments