Plotter.add_mesh_clip_plane(mesh, normal='x', invert=False, widget_color=None, value=0.0, assign_to_axis=None, tubing=False, origin_translation=True, outline_translation=False, implicit=True, normal_rotation=True, crinkle=False, interaction_event='end', origin=None, **kwargs)[source]#

Clip a mesh using a plane widget.

Add a mesh to the scene with a plane widget that is used to clip the mesh interactively.

The clipped mesh is saved to the .plane_clipped_meshes attribute on the plotter.

meshpyvista.DataSet or vtk.vtkAlgorithm

The input dataset to add to the scene and clip or algorithm that produces said mesh.

normalstr or tuple(float), optional

The starting normal vector of the plane.

invertbool, optional

Flag on whether to flip/invert the clip.

widget_colorColorLike, optional

Either a string, RGB list, or hex color string.

valuefloat, optional

Set the clipping value along the normal direction. The default value is 0.0.

assign_to_axisstr or int, optional

Assign the normal of the plane to be parallel with a given axis. Options are (0, 'x'), (1, 'y'), or (2, 'z').

tubingbool, optional

When using an implicit plane wiget, this controls whether or not tubing is shown around the plane’s boundaries.

origin_translationbool, optional

If False, the plane widget cannot be translated by its origin and is strictly placed at the given origin. Only valid when using an implicit plane.

outline_translationbool, optional

If False, the box widget cannot be translated and is strictly placed at the given bounds.

implicitbool, optional

When True, a vtkImplicitPlaneWidget is used and when False, a vtkPlaneWidget is used.

normal_rotationbool, optional

Set the opacity of the normal vector arrow to 0 such that it is effectively disabled. This prevents the user from rotating the normal. This is forced to False when assign_to_axis is set.

crinklebool, optional

Crinkle the clip by extracting the entire cells along the clip.

interaction_eventvtk.vtkCommand.EventIds, str, optional

The VTK interaction event to use for triggering the callback. Accepts either the strings 'start', 'end', 'always' or a vtk.vtkCommand.EventIds.

Changed in version 0.38.0: Now accepts either strings or vtk.vtkCommand.EventIds.

origintuple(float), optional

The starting coordinate of the center of the plane.

**kwargsdict, optional

All additional keyword arguments are passed to Plotter.add_mesh() to control how the mesh is displayed.


VTK actor of the mesh.


Shows an interactive plane used to clip the mesh and store it.

>>> import pyvista as pv
>>> from pyvista import examples
>>> vol = examples.load_airplane()
>>> pl = pv.Plotter()
>>> _ = pl.add_mesh_clip_plane(vol, normal=[0, -1, 0])
>>>[-2.1, 0.6, 1.5])
>>> pl.plane_clipped_meshes  

For a full example see Plane Widget.