DataObjectFilters.clip_box

DataObjectFilters.clip_box#

DataObjectFilters.clip_box(
bounds: float | VectorLikeFloat | PolyData | None = None,
*,
invert: bool = True,
factor: float = 0.35,
progress_bar: bool = False,
merge_points: bool = True,
crinkle: bool = False,
) → _OutputDataObject[source]#

Clip a dataset by a bounding box defined by the bounds.

If no bounds are given, a corner of the dataset bounds will be removed.

Every input is clipped by the six box planes in turn with the same clipper as clip(), so the cells the box does not cut keep their type. A PointSet is clipped through its vertices.

Changed in version 0.49:

  • Every input is clipped by the six box planes instead of vtkBoxClipDataSet, so the cells the box does not cut keep their type instead of being split into simplices, and the output normally has fewer cells and points for the same clipped region. Call triangulate() on the output for an all-simplex mesh as before.

  • A PolyData input gives a PolyData instead of an UnstructuredGrid.

  • merge_points merges points that share a position, or leaves them apart, for every input class. No input now gets a copy of every point per cell; call separate_cells() on the output for that.

Parameters:
boundsVectorLikeFloat, optional

Length 6 sequence of floats: (x_min, x_max, y_min, y_max, z_min, z_max). Length 3 sequence of floats: distances from the min coordinate of the input mesh. Single float value: uniform distance from the min coordinate. Length 12 sequence of length 3 sequence of floats: a plane collection (normal, center, and so on). pyvista.PolyData: if a poly mesh is passed that represents a box with 6 faces that all form a standard box, then planes will be extracted from the box to define the clipping region.

invertbool, default: True

Flag on whether to flip/invert the clip.

factorfloat, default: 0.35

If bounds are not given this is the factor along each axis to extract the default box.

progress_barbool, default: False

Display a progress bar to indicate progress.

merge_pointsbool, default: True

If True, points that share a position are merged into one. If False, points the input kept apart stay apart, unless a PolyData holds triangle strips.

crinklebool, default: False

Crinkle the clip by extracting the entire cells along the clip. This adds the "cell_ids" array to the cell_data attribute that tracks the original cell IDs of the original dataset.

Returns:
pyvista.DataSet | pyvista.MultiBlock

Clipped dataset. A PolyData gives a PolyData and a PointSet gives a PointSet, clipped through its vertices; every other dataset gives an UnstructuredGrid. A MultiBlock gives a MultiBlock whose blocks each follow that rule, nested blocks included.

Examples#

Download Python source code | Download Jupyter notebook

Clip a corner of a cube. The bounds of a cube are normally [-0.5, 0.5, -0.5, 0.5, -0.5, 0.5], and this removes 1/8 of the cube’s surface.

>>> import pyvista as pv
>>> cube = pv.Cube().triangulate().subdivide(3)
>>> clipped_cube = cube.clip_box([0, 1, 0, 1, 0, 1])
>>> clipped_cube.plot()
../../../_images/pyvista-DataObjectFilters-clip_box-e53d956e0bcba524_00_00.png