PointBased GridsÂ¶
Structured and unstructured grids are designed to manage cells whereas a
polydata object manage surfaces. The vtk.UnstructuredGrid
is a derived class
from vtk.vtkUnstructuredGrid
designed to make creation, array access, and
plotting more straightforward than using the vtk object. The same applies to a
vtk.StructuredGrid
.
Unstructured Grid CreationÂ¶
See Creating an Unstructured Grid for an example on how to create an unstructured grid from NumPy arrays.
Empty ObjectÂ¶
An unstructured grid can be initialized with:
import pyvista as pv
grid = pv.UnstructuredGrid()
This creates an empty grid, and is not useful until points and cells are added
to it. VTK points and cells can be added with SetPoints
and SetCells
,
but the inputs to these need to be vtk.vtkCellArray
and vtk.vtkPoints
objects, which need to be populated with values. Grid creation is simplified
by initializing the grid directly from numpy arrays as in the following section.
Loading from FileÂ¶
Unstructured grids can be loaded from a vtk file.
import pyvista as pv
from pyvista import examples
grid = pv.UnstructuredGrid(examples.hexbeamfile)
Structured Grid CreationÂ¶
Empty ObjectÂ¶
A structured grid can be initialized with:
import pyvista as pv
grid = pv.StructuredGrid()
This creates an empty grid, and is not useful until points are added to it.
Creating from Numpy ArraysÂ¶
A structured grid can be created directly from numpy arrays. This is useful when creating a grid from scratch or copying it from another format.
Also see Creating a Structured Surface for an example on creating a structured grid from NumPy arrays.
import pyvista as pv
import numpy as np
x = np.arange(10, 10, 0.25)
y = np.arange(10, 10, 0.25)
z = np.arange(10, 10, 0.25)
x, y, z = np.meshgrid(x, y, z)
# create the unstructured grid directly from the numpy arrays and plot
grid = pv.StructuredGrid(x, y, z)
grid.plot(show_edges=True, screenshot='structured_cube.png')
Loading from FileÂ¶
Structured grids can be loaded from a vtk
file.
grid = pv.StructuredGrid(filename)
Plotting GridsÂ¶
This example shows how you can load an unstructured grid from a vtk
file and
create a plot and gif movie by updating the plotting object.
# Load module and example file
import pyvista as pv
from pyvista import examples
import numpy as np
# Load example beam grid
grid = pv.UnstructuredGrid(examples.hexbeamfile)
# Create fictitious displacements as a function of Z location
d = np.zeros_like(grid.points)
d[:, 1] = grid.points[:, 2]**3/250
# Displace original grid
grid.points += d
A simple plot can be created by using:
grid.plot(scalars=d[:, 1], stitle='Y Displacement')
A more complex plot can be created using:
# Store Camera position. This can be obtained manually by getting the
# output of grid.plot()
# it's hardcoded in this example
cpos = [(11.915126303095157, 6.11392754955802, 3.6124956735471914),
(0.0, 0.375, 2.0),
(0.42546442225230097, 0.9024244135964158, 0.06789847673314177)]
# plot this displaced beam
plotter = pv.Plotter()
plotter.add_mesh(grid, scalars=d[:, 1], stitle='Y Displacement',
rng=[d.max(), d.max()])
plotter.add_axes()
plotter.camera_position = cpos
plotter.show(screenshot='beam.png')
You can animate the motion of the beam by updating the positions and scalars of the grid copied to the plotting object. First you have to set up the plotting object:
plotter = pv.Plotter()
plotter.add_mesh(grid, scalars=d[:, 1], stitle='Y Displacement',
show_edges=True, rng=[d.max(), d.max()],
interpolate_before_map=True)
plotter.add_axes()
plotter.camera_position = cpos
You then open the render window by plotting before opening the movie file. Set auto_close to False so the plotter does not close automatically. Disabling interactive means the plot will automatically continue without waiting for the user to exit the window.
plotter.show(interactive=False, auto_close=False, window_size=[800, 600])
# open movie file. A mp4 file can be written instead. Requires moviepy
plotter.open_gif('beam.gif') # or beam.mp4
# Modify position of the beam cyclically
pts = grid.points.copy() # unmodified points
for phase in np.linspace(0, 2*np.pi, 20):
plotter.update_coordinates(pts + d*np.cos(phase))
plotter.update_scalars(d[:, 1]*np.cos(phase))
plotter.write_frame()
# Close the movie and plot
plotter.close()
You can also render the beam as as a wireframe object:
# Animate plot as a wireframe
plotter = pv.Plotter()
plotter.add_mesh(grid, scalars=d[:, 1], stitle='Y Displacement', show_edges=True,
rng=[d.max(), d.max()], interpolate_before_map=True,
style='wireframe')
plotter.add_axes()
plotter.camera_position = cpos
plotter.show(interactive=False, auto_close=False, window_size=[800, 600])
#plotter.OpenMovie('beam.mp4')
plotter.open_gif('beam_wireframe.gif')
for phase in np.linspace(0, 2*np.pi, 20):
plotter.update_coordinates(grid.points + d*np.cos(phase), render=False)
plotter.update_scalars(d[:, 1]*np.cos(phase), render=False)
plotter.render()
plotter.write_frame()
plotter.close()
Adding Labels to a PlotÂ¶
Labels can be added to a plot using the add_point_labels
function within the
Plotter
object. The following example loads the included example beam,
generates a plotting class, and subselects points along the yz plane and
labels their coordinates. add_point_labels
requires that the number of
labels matches the number of points, and that labels is a list containing one
entry per point. The code automatically converts each item in the list to a
string.
# Load module and example file
import pyvista as pv
from pyvista import examples
# Load example beam file
grid = pv.UnstructuredGrid(examples.hexbeamfile)
# Create plotting class and add the unstructured grid
plotter = pv.Plotter()
plotter.add_mesh(grid, show_edges=True, color='tan')
# Add labels to points on the yz plane (where x == 0)
points = grid.points
mask = points[:, 0] == 0
plotter.add_point_labels(points[mask], points[mask].tolist())
plotter.camera_position = [
(1.4643015810492384, 1.5603923627830638, 3.16318236536270),
(0.05268120500967251, 0.639442034364944, 1.204095304165153),
(0.2364061044392675, 0.9369426029156169, 0.25739213784721)]
plotter.show(screenshot='labels0.png')
This example is similar and shows how labels can be combined with a scalar bar to show the exact value of certain points.
# Label the Z position
values = grid.points[:, 2]
# Create plotting class and add the unstructured grid
plotter = pv.Plotter(notebook=False)
# color mesh according to z value
plotter.add_mesh(grid, scalars=values, stitle='Z Position', show_edges=True)
# Add labels to points on the yz plane (where x == 0)
mask = grid.points[:, 0] == 0
plotter.add_point_labels(points[mask], values[mask].tolist(), font_size=24)
# add some text to the plot
plotter.add_text('Example showing plot labels')
plotter.view_vector((6, 3, 4), (0.,1., 0.))
plotter.show(screenshot='labels1.png')
pv.Unstructured Grid Class MethodsÂ¶
The following is a description of the methods available to a
pv.UnstructuredGrid
object. It inherits all methods from the original
vtk
object, vtk.vtkUnstructuredGrid.
Attributes
Return a the vtk cell connectivity as a numpy array. 

Return a pointer to the cells as a numpy object. 

Return a dictionary that contains all cells mapped from cell types. 

Get the cell types array. 

Get cell locations Array. 
Methods
Cast to an explicit structured grid. 


Return a copy of the unstructured grid containing only linear cells. 

class
pyvista.
UnstructuredGrid
(*args, **kwargs)Â¶ Bases:
vtkCommonDataModelPython.vtkUnstructuredGrid
,pyvista.core.pointset.PointGrid
,pyvista.core.filters.UnstructuredGridFilters
Extends the functionality of a vtk.vtkUnstructuredGrid object.
Can be initialized by the following:
Creating an empty grid
From a vtk.vtkPolyData object
From cell, offset, and node arrays
From a file
Examples
>>> import pyvista >>> from pyvista import examples >>> import vtk
Create an empty grid
>>> grid = pyvista.UnstructuredGrid()
Copy a vtkUnstructuredGrid
>>> vtkgrid = vtk.vtkUnstructuredGrid() >>> grid = pyvista.UnstructuredGrid(vtkgrid) # Initialize from a vtkUnstructuredGrid
>>> # from arrays (vtk9) >>> #grid = pyvista.UnstructuredGrid(cells, celltypes, points)
>>> # from arrays (vtk<9) >>> #grid = pyvista.UnstructuredGrid(offset, cells, celltypes, points)
From a string filename
>>> grid = pyvista.UnstructuredGrid(examples.hexbeamfile)

cast_to_explicit_structured_grid
()Â¶ Cast to an explicit structured grid.
 Returns
An explicit structured grid.
 Return type
 Raises
TypeError â€“ If the unstructured grid doesnâ€™t have the
'BLOCK_I'
,'BLOCK_J'
and'BLOCK_K'
cells arrays.
See also
ExplicitStructuredGrid.cast_to_unstructured_grid
Cast an explicit structured grid to an unstructured grid.
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid.hide_cells(range(80, 120)) >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid = grid.cast_to_unstructured_grid() >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid = grid.cast_to_explicit_structured_grid() >>> grid.plot(color='w', show_edges=True, show_bounds=True)

property
cell_connectivity
Â¶ Return a the vtk cell connectivity as a numpy array.

property
cells
Â¶ Return a pointer to the cells as a numpy object.
 Type
Legacy method

property
cells_dict
Â¶ Return a dictionary that contains all cells mapped from cell types.
This function returns a np.ndarray for each cell type in an ordered fashion. Note that this function only works with element types of fixed sizes
 Returns
cells_dict â€“ A dictionary mapping containing all cells of this unstructured grid. Structure: vtk_enum_type (int) > cells (np.ndarray)
 Return type
dict

property
celltypes
Â¶ Get the cell types array.

linear_copy
(deep=False)Â¶ Return a copy of the unstructured grid containing only linear cells.
Converts the following cell types to their linear equivalents.
VTK_QUADRATIC_TETRA â€“> VTK_TETRA
VTK_QUADRATIC_PYRAMID â€“> VTK_PYRAMID
VTK_QUADRATIC_WEDGE â€“> VTK_WEDGE
VTK_QUADRATIC_HEXAHEDRON â€“> VTK_HEXAHEDRON
 Parameters
deep (bool) â€“ When True, makes a copy of the points array. Default False. Cells and cell types are always copied.
 Returns
grid â€“ UnstructuredGrid containing only linear cells.
 Return type

property
offset
Â¶ Get cell locations Array.
Explicit Structured GridÂ¶
Attributes
Return the topological dimensions of the grid. 

Return the bounding box of the visible cells. 
Methods
Cast to an unstructured grid. 


Return the cell structured coordinates. 

Return the cell ID. 

Compute an array with the number of connected cell faces. 

Compute the faces connectivity flags array. 

Hide specific cells. 

Return the indices of neighboring cells. 

Save this VTK object to file. 

Show hidden cells. 

class
pyvista.
ExplicitStructuredGrid
(*args, **kwargs)Â¶ Bases:
pyvista._vtk.vtkExplicitStructuredGrid
,pyvista.core.pointset.PointGrid
Extend the functionality of a
vtk.vtkExplicitStructuredGrid
object.Can be initialized by the following:
Creating an empty grid
From a
vtk.vtkExplicitStructuredGrid
orvtk.vtkUnstructuredGrid
objectFrom a VTU or VTK file
From
dims
andcorners
arrays
Examples
>>> import numpy as np >>> import pyvista as pv >>> >>> ni, nj, nk = 4, 5, 6 >>> si, sj, sk = 20, 10, 1 >>> >>> xcorn = np.arange(0, (ni+1)*si, si) >>> xcorn = np.repeat(xcorn, 2) >>> xcorn = xcorn[1:1] >>> xcorn = np.tile(xcorn, 4*nj*nk) >>> >>> ycorn = np.arange(0, (nj+1)*sj, sj) >>> ycorn = np.repeat(ycorn, 2) >>> ycorn = ycorn[1:1] >>> ycorn = np.tile(ycorn, (2*ni, 2*nk)) >>> ycorn = np.transpose(ycorn) >>> ycorn = ycorn.flatten() >>> >>> zcorn = np.arange(0, (nk+1)*sk, sk) >>> zcorn = np.repeat(zcorn, 2) >>> zcorn = zcorn[1:1] >>> zcorn = np.repeat(zcorn, (4*ni*nj)) >>> >>> corners = np.stack((xcorn, ycorn, zcorn)) >>> corners = corners.transpose() >>> >>> dims = np.asarray((ni, nj, nk))+1 >>> grid = pv.ExplicitStructuredGrid(dims, corners) >>> grid.compute_connectivity() >>> grid.plot(show_edges=True)

cast_to_unstructured_grid
()Â¶ Cast to an unstructured grid.
 Returns
An unstructured grid. VTK adds the
'BLOCK_I'
,'BLOCK_J'
and'BLOCK_K'
cell arrays. These arrays are required to restore the explicit structured grid. Return type
Warning
The ghost cell array is disabled before casting the unstructured grid in order to allow the original structure and attributes data of the explicit structured grid to be restored. If you donâ€™t need to restore the explicit structured grid later or want to extract an unstructured grid from the visible subgrid, use the
extract_cells
filter and the cell indices where the ghost cell array is0
.See also
DataSetFilters.extract_cells
Extract a subset of a dataset.
UnstructuredGrid.cast_to_explicit_structured_grid
Cast an unstructured grid to an explicit structured grid.
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid.hide_cells(range(80, 120)) >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid = grid.cast_to_unstructured_grid() >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid = grid.cast_to_explicit_structured_grid() >>> grid.plot(color='w', show_edges=True, show_bounds=True)

cell_coords
(ind)Â¶ Return the cell structured coordinates.
 Parameters
ind (int or iterable(int)) â€“ Cell IDs.
 Returns
coords â€“ Cell structured coordinates.
None
ifind
is outside the grid extent. Return type
tuple(int), numpy.ndarray or None
See also
ExplicitStructuredGrid.cell_id
Return the cell ID.
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.cell_coords(19) (3, 4, 0)
>>> grid.cell_coords((19, 31, 41, 54)) array([[3, 4, 0], [3, 2, 1], [1, 0, 2], [2, 3, 2]])

cell_id
(coords)Â¶ Return the cell ID.
 Parameters
coords (tuple(int), list(tuple(int)) or numpy.ndarray) â€“ Cell structured coordinates.
 Returns
ind â€“ Cell IDs.
None
ifcoords
is outside the grid extent. Return type
int, numpy.ndarray or None
See also
ExplicitStructuredGrid.cell_coords
Return the cell structured coordinates.
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.cell_id((3, 4, 0)) 19
>>> coords = [(3, 4, 0), ... (3, 2, 1), ... (1, 0, 2), ... (2, 3, 2)] >>> grid.cell_id(coords) array([19, 31, 41, 54])

compute_connections
(inplace=True)Â¶ Compute an array with the number of connected cell faces.
This method calculates the number of topological cell neighbors connected by faces. The results are stored in the
'number_of_connections'
cell array. Parameters
inplace (bool, optional) â€“ This method is applied to this grid if
True
(default) or to a copy otherwise. Returns
grid â€“ A deep copy of this grid if
inplace=False
orNone
otherwise. Return type
ExplicitStructuredGrid or None
See also
ExplicitStructuredGrid.compute_connectivity
Compute the faces connectivity flags array.
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.compute_connections() >>> grid.plot(show_edges=True)

compute_connectivity
(inplace=True)Â¶ Compute the faces connectivity flags array.
This method checks the faces connectivity of the cells with their topological neighbors. The result is stored in the array of integers
'ConnectivityFlags'
. Each value in this array must be interpreted as a binary number, where the digits shows the faces connectivity of a cell with its topological neighbors Z, +Z, Y, +Y, X and +X respectively. For example, a cell with'ConnectivityFlags'
equal to27
(011011
) indicates that this cell is connected by faces with their neighbors(0, 0, 1)
,(0, 1, 0)
,(1, 0, 0)
and(1, 0, 0)
. Parameters
inplace (bool, optional) â€“ This method is applied to this grid if
True
(default) or to a copy otherwise. Returns
grid â€“ A deep copy of this grid if
inplace=False
orNone
otherwise. Return type
ExplicitStructuredGrid or None
See also
ExplicitStructuredGrid.compute_connections
Compute an array with the number of connected cell faces.
Examples
>>> from pyvista import examples >>> >>> grid = examples.load_explicit_structured() >>> grid.compute_connectivity() >>> grid.plot(show_edges=True)

property
dimensions
Â¶ Return the topological dimensions of the grid.
 Returns
Number of sampling points in the I, J and Z directions respectively.
 Return type
tuple(int)
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.dimensions array([5, 6, 7])

hide_cells
(ind, inplace=True)Â¶ Hide specific cells.
Hides cells by setting the ghost cell array to
HIDDENCELL
. Parameters
ind (int or iterable(int)) â€“ Cell indices to be hidden. A boolean array of the same size as the number of cells also is acceptable.
inplace (bool, optional) â€“ This method is applied to this grid if
True
(default) or to a copy otherwise.
 Returns
grid â€“ A deep copy of this grid if
inplace=False
orNone
otherwise. Return type
ExplicitStructuredGrid or None
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.hide_cells(range(80, 120)) >>> grid.plot(color='w', show_edges=True, show_bounds=True)

neighbors
(ind, rel='connectivity')Â¶ Return the indices of neighboring cells.
 Parameters
ind (int or iterable(int)) â€“ Cell IDs.
rel (str, optional) â€“ Defines the neighborhood relationship. If
'topological'
, returns the(i1, j, k)
,(i+1, j, k)
,(i, j1, k)
,(i, j+1, k)
,(i, j, k1)
and(i, j, k+1)
cells. If'connectivity'
(default), returns only the topological neighbors considering faces connectivity. If'geometric'
, returns the cells in the(i1, j)
,(i+1, j)
,(i,j1)
and(i, j+1)
vertical cell groups whose faces intersect.
 Returns
indices â€“ Indices of neighboring cells.
 Return type
list(int)
Examples
>>> import pyvista as pv >>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> cell = grid.extract_cells(31) >>> ind = grid.neighbors(31) >>> neighbors = grid.extract_cells(ind) >>> >>> plotter = pv.Plotter() >>> plotter.add_axes() >>> plotter.add_mesh(cell, color='r', show_edges=True) >>> plotter.add_mesh(neighbors, color='w', show_edges=True) >>> plotter.show()

save
(filename, binary=True)Â¶ Save this VTK object to file.
 Parameters
filename (str) â€“ Output file name. VTU and VTK extensions are supported.
binary (bool, optional) â€“ If
True
(default), write as binary, else ASCII.
Warning
VTK adds the
'BLOCK_I'
,'BLOCK_J'
and'BLOCK_K'
cell arrays. These arrays are required to restore the explicit structured grid.Examples
>>> import pyvista as pv >>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.hide_cells(range(80, 120)) >>> grid.save('grid.vtu')
>>> grid = pv.ExplicitStructuredGrid('grid.vtu') >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid.show_cells() >>> grid.plot(color='w', show_edges=True, show_bounds=True)

show_cells
(inplace=True)Â¶ Show hidden cells.
Shows hidden cells by setting the ghost cell array to
0
whereHIDDENCELL
. Parameters
inplace (bool, optional) â€“ This method is applied to this grid if
True
(default) or to a copy otherwise. Returns
grid â€“ A deep copy of this grid if
inplace=False
orNone
otherwise. Return type
ExplicitStructuredGrid or None
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.hide_cells(range(80, 120)) >>> grid.plot(color='w', show_edges=True, show_bounds=True)
>>> grid.show_cells() >>> grid.plot(color='w', show_edges=True, show_bounds=True)

property
visible_bounds
Â¶ Return the bounding box of the visible cells.
Different from bounds, which returns the bounding box of the complete grid, this method returns the bounding box of the visible cells, where the ghost cell array is not
HIDDENCELL
. Returns
The limits of the visible grid in the X, Y and Z directions respectively.
 Return type
list(float)
Examples
>>> from pyvista import examples >>> grid = examples.load_explicit_structured() >>> grid.hide_cells(range(80, 120)) >>> grid.bounds [0.0, 80.0, 0.0, 50.0, 0.0, 6.0]
>>> grid.visible_bounds [0.0, 80.0, 0.0, 50.0, 0.0, 4.0]
pv.Structured Grid Class MethodsÂ¶
The following is a description of the methods available to a
pv.StructuredGrid
object. It inherits all methods from the original
vtk
object, vtk.vtkStructuredGrid.
Attributes
Return a length 3 tuple of the gridâ€™s dimensions. 

Points as a 4D matrix, with x/y/z along the last dimension. 

Return the X coordinates of all points. 

Return the Y coordinates of all points. 

Return the Z coordinates of all points. 
Methods

Hide cells without deleting them. 

class
pyvista.
StructuredGrid
(*args, **kwargs)Â¶ Bases:
vtkCommonDataModelPython.vtkStructuredGrid
,pyvista.core.pointset.PointGrid
,pyvista.core.filters.StructuredGridFilters
Extend the functionality of a vtk.vtkStructuredGrid object.
Can be initialized in several ways:
Create empty grid
Initialize from a vtk.vtkStructuredGrid object
Initialize directly from the point arrays
See _from_arrays in the documentation for more details on initializing from point arrays
Examples
>>> import pyvista >>> import vtk >>> import numpy as np
Create empty grid
>>> grid = pyvista.StructuredGrid()
Initialize from a vtk.vtkStructuredGrid object
>>> vtkgrid = vtk.vtkStructuredGrid() >>> grid = pyvista.StructuredGrid(vtkgrid)
Create from NumPy arrays
>>> xrng = np.arange(10, 10, 2) >>> yrng = np.arange(10, 10, 2) >>> zrng = np.arange(10, 10, 2) >>> x, y, z = np.meshgrid(xrng, yrng, zrng) >>> grid = pyvista.StructuredGrid(x, y, z)

property
dimensions
Â¶ Return a length 3 tuple of the gridâ€™s dimensions.

hide_cells
(ind)Â¶ Hide cells without deleting them.
Hides cells by setting the ghost_cells array to HIDDEN_CELL.
 Parameters
ind (iterable) â€“ List or array of cell indices to be hidden. The array can also be a boolean array of the same size as the number of cells.
Examples
Hide part of the middle of a structured surface.
>>> import pyvista as pv >>> import numpy as np >>> x = np.arange(10, 10, 0.25) >>> y = np.arange(10, 10, 0.25) >>> z = 0 >>> x, y, z = np.meshgrid(x, y, z) >>> grid = pv.StructuredGrid(x, y, z) >>> grid.hide_cells(range(79*30, 79*50))

property
points_matrix
Â¶ Points as a 4D matrix, with x/y/z along the last dimension.

property
x
Â¶ Return the X coordinates of all points.

property
y
Â¶ Return the Y coordinates of all points.

property
z
Â¶ Return the Z coordinates of all points.
Methods in Common with Structured and Unstructured GridsÂ¶
These methods are common to both pv.StructuredGrid
and
pv.UnstructuredGrid
objects.
Attributes
Compute the volume of the point grid. 
Methods

Plot the curvature of the external surface of the grid. 

class
pyvista.
PointGrid
(*args, **kwargs)Â¶ Bases:
pyvista.core.pointset.PointSet
Class in common with structured and unstructured grids.

plot_curvature
(curv_type='mean', **kwargs)Â¶ Plot the curvature of the external surface of the grid.
 Parameters
curv_type (str, optional) â€“
One of the following strings indicating curvature types
mean
gaussian
maximum
minimum
**kwargs (optional) â€“ Optional keyword arguments. See help(pyvista.plot)
 Returns
cpos â€“ Camera position, focal point, and view up. Used for storing and setting camera view.
 Return type
list

property
volume
Â¶ Compute the volume of the point grid.
This extracts the external surface and computes the interior volume
