Sunchi
Sunchi

Reputation: 95

PyVista, How to save the whole render result

When using PyVista, we can use mesh.save() or pyvista.save_meshio() to save a mesh, but not the whole render result. Taking the following code as an example, how do I save the render result, instead of just a single mesh?

from math import sin, cos, radians
import pyvista as pv

# Create source to ray trace
sphere = pv.Sphere(radius=0.85)

# Define a list of origin points and a list of direction vectors for each ray
vectors = [ [cos(radians(x)), sin(radians(x)), 0] for x in range(0, 360, 5)]
origins = [[0, 0, 0]] * len(vectors)

# Perform ray trace
points, ind_ray, ind_tri = sphere.multi_ray_trace(origins, vectors)

# Create geometry to represent ray trace
rays = [pv.Line(o, v) for o, v in zip(origins, vectors)]
intersections = pv.PolyData(points)

# Render the result
p = pv.Plotter()
p.add_mesh(sphere, show_edges=True, opacity=0.5, color="w", lighting=False, label="Test Mesh")
p.add_mesh(rays[0], color="blue", line_width=5, label="Ray Segments")
for ray in rays[1:]:
    p.add_mesh(ray, color="blue", line_width=5)
p.add_mesh(intersections, color="maroon", point_size=25, label="Intersection Points")
p.show()

Upvotes: 2

Views: 4469

Answers (1)

Steven
Steven

Reputation: 1

merge(grid=None, merge_points=True, inplace=False, main_has_priority=True)

Join one or many other grids to this grid.

Grid is updated in-place by default.

Can be used to merge points of adjacent cells when no grids are input.

Parameters

        grid (vtk.UnstructuredGrid or list of vtk.UnstructuredGrids) – Grids to merge to this grid.

sample:

mesh = py.PolyData()
obj = mesh.merge(grid_list)
obj.save('obj.vtk')

Upvotes: 0

Related Questions