Skip to content

Commit d55b3e2

Browse files
committed
fix(vtk): start migrating rendering to VTK
1 parent d562eef commit d55b3e2

File tree

2 files changed

+25
-17
lines changed

2 files changed

+25
-17
lines changed

src/e3sm_quickview/pipeline.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from paraview import simple
66
from vtkmodules.vtkCommonCore import vtkLogger
7+
from vtkmodules.vtkRenderingCore import vtkActor, vtkPolyDataMapper
78

89

910
def load_plugins():
@@ -19,7 +20,6 @@ def load_plugins():
1920
print("Error loading plugin :", e)
2021

2122

22-
# Define a VTK error observer
2323
class ErrorObserver:
2424
def __init__(self):
2525
self.error_occurred = False
@@ -53,6 +53,18 @@ def __init__(self, projection="Mollweide"):
5353
Projection=projection,
5454
Translate=0,
5555
)
56+
# Representation
57+
self.geometry = simple.ExtractSurface(Input=self.proj)
58+
self.mapper = vtkPolyDataMapper(
59+
input_connection=self.geometry.GetClientSideObject().output_port,
60+
scalar_visibility=0,
61+
)
62+
self.actor = vtkActor(mapper=self.mapper)
63+
self.actor.property.SetRepresentationToWireframe()
64+
self.actor.property.render_lines_as_tubes = 1
65+
self.actor.property.line_width = 1.0
66+
self.actor.property.ambient_color = (0.67, 0.67, 0.67)
67+
self.actor.property.diffuse_color = (0.67, 0.67, 0.67)
5668

5769
def crop(self, longitude_min_max, latitude_min_max):
5870
self._crop.LongitudeRange = longitude_min_max
@@ -77,6 +89,16 @@ def __init__(self, projection="Mollweide"):
7789
Projection=projection,
7890
Translate=0,
7991
)
92+
self.geometry = simple.ExtractSurface(Input=self.proj)
93+
# representation
94+
self.mapper = vtkPolyDataMapper(
95+
input_connection=self.geometry.GetClientSideObject().output_port,
96+
)
97+
self.actor = vtkActor(mapper=self.mapper)
98+
self.actor.property.SetRepresentationToWireframe()
99+
self.actor.property.ambient_color = (0.67, 0.67, 0.67)
100+
self.actor.property.diffuse_color = (0.67, 0.67, 0.67)
101+
self.actor.property.opacity = 0.4
80102

81103
def crop(self, longitude_min_max, latitude_min_max):
82104
self.grid_lines.LongitudeRange = longitude_min_max

src/e3sm_quickview/view_manager.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,23 +101,9 @@ def __init__(self, server, source, variable_name, variable_type):
101101

102102
# Add annotation to the view
103103
# - continents
104-
globe = source.views["continents"]
105-
repG = simple.Show(globe, self.view)
106-
simple.ColorBy(repG, None)
107-
repG.SetRepresentationType("Wireframe")
108-
repG.RenderLinesAsTubes = 1
109-
repG.LineWidth = 1.0
110-
repG.AmbientColor = [0.67, 0.67, 0.67]
111-
repG.DiffuseColor = [0.67, 0.67, 0.67]
112-
self.rep_globe = repG
104+
self.view.GetRenderer().AddActor(source.continent.actor)
113105
# - gridlines
114-
annot = source.views["grid_lines"]
115-
repAn = simple.Show(annot, self.view)
116-
repAn.SetRepresentationType("Wireframe")
117-
repAn.AmbientColor = [0.67, 0.67, 0.67]
118-
repAn.DiffuseColor = [0.67, 0.67, 0.67]
119-
repAn.Opacity = 0.4
120-
self.rep_grid = repAn
106+
self.view.GetRenderer().AddActor(source.grid_lines.actor)
121107

122108
# Reactive behavior
123109
self.config.watch(

0 commit comments

Comments
 (0)