pyvista.PolyDataFilters.decimate_pro#
- PolyDataFilters.decimate_pro(
- reduction,
- feature_angle=45.0,
- split_angle=75.0,
- splitting=True,
- pre_split_mesh=False,
- preserve_topology=False,
- boundary_vertex_deletion=True,
- max_degree=None,
- inplace=False,
- progress_bar=False,
Reduce the number of triangles in a triangular mesh.
It forms a good approximation to the original geometry. Based on the algorithm originally described in “Decimation of Triangle Meshes”, Proc Siggraph 92 (https://doi.org/10.1145/133994.134010).
- Parameters:
- reduction
float
Reduction factor. A value of 0.9 will leave 10% of the original number of vertices.
- feature_angle
float
, default: 45.0 Angle used to define what an edge is (i.e., if the surface normal between two adjacent triangles is >=
feature_angle
, an edge exists).- split_angle
float
, default: 75.0 Angle used to control the splitting of the mesh. A split line exists when the surface normals between two edge connected triangles are >=
split_angle
.- splittingbool, default:
True
Controls the splitting of the mesh at corners, along edges, at non-manifold points, or anywhere else a split is required. Turning splitting off will better preserve the original topology of the mesh, but may not necessarily give the exact requested decimation.
- pre_split_meshbool, default:
False
Separates the mesh into semi-planar patches, which are disconnected from each other. This can give superior results in some cases. If
pre_split_mesh
is set toTrue
, the mesh is split with the specifiedsplit_angle
. Otherwise mesh splitting is deferred as long as possible.- preserve_topologybool, default:
False
Controls topology preservation. If on, mesh splitting and hole elimination will not occur. This may limit the maximum reduction that may be achieved.
- boundary_vertex_deletionbool, default:
True
Allow deletion of vertices on the boundary of the mesh. Turning this off may limit the maximum reduction that may be achieved.
- max_degree
float
,optional
The maximum vertex degree. If the number of triangles connected to a vertex exceeds
max_degree
, then the vertex will be split. The complexity of the triangulation algorithm is proportional tomax_degree**2
. Settingmax_degree
small can improve the performance of the algorithm.- inplacebool, default:
False
Whether to update the mesh in-place.
- progress_barbool, default:
False
Display a progress bar to indicate progress.
- reduction
- Returns:
pyvista.PolyData
Decimated mesh.
Examples
Decimate a sphere. First plot the sphere.
>>> import pyvista as pv >>> sphere = pv.Sphere(phi_resolution=60, theta_resolution=60) >>> sphere.plot(show_edges=True, line_width=2)
Now decimate it and plot it.
>>> decimated = sphere.decimate_pro(0.75) >>> decimated.plot(show_edges=True, line_width=2)
See Decimation for more examples using this filter.