Mesh Data Structure¶
-
class
pymesh.Mesh(raw_mesh)¶ A generic representation of a surface or volume mesh.
-
vertices¶ A \((N_v \times D)\) array of vertex coordinates, where \(N_v\) is the number of vertices, \(D\) is the dimention of the embedding space (\(D\) must be either 2 or 3).
-
faces¶ A \((N_f \times F_d)\) array of vertex indices that represents a generalized array of faces, where \(N_f\) is the number of faces, \(F_d\) is the number of vertex per face. Only triangles (\(F_d=3\)) and quad (\(F_d=4\)) faces are supported.
-
voxels¶ A \((N_V \times V_d)\) array of vertex indices that represents an array of generalized voxels, where \(N_V\) is the number of voxels, \(V_d\) is the number of vertex per voxel. Only tetrahedron (\(V_d=4\)) and hexahedron (\(V_d=8\)) are supported for now.
-
num_vertices¶ Number of vertices (\(N_v\)).
-
num_faces¶ Number of faces (\(N_f\)).
-
num_voxels¶ Number of voxels (\(N_V\)).
-
dim¶ Dimention of the embedding space (\(D\)).
-
vertex_per_face¶ Number of vertices in each face (\(F_d\)).
-
vertex_per_voxel¶ Number of vertices in each voxel (\(V_d\)).
-
attribute_names¶ Names of all attribute associated with this mesh.
-
bbox¶ A \((2 \times D)\) array where the first row is the minimum values of each vertex coordinates, and the second row is the maximum values.
-
num_nodes¶ Number of nodes.
-
num_elements¶ Number of elements.
-
nodes_per_element¶ Number of nodes in each element.
-
element_volumes¶ An array representing volumes of each element.
-
num_components¶ Number of vertex-connected_components.
-
num_surface_components¶ Number of edge-connected components.
-
num_volume_components¶ Number of face-connected components.
-
add_attribute(name)¶ Add an attribute to mesh.
-
has_attribute(name)¶ Check if an attribute exists.
-
get_attribute(name)¶ Return attribute values in a flattened array.
-
get_vertex_attribute(name)¶ Same as
get_attribute()but reshaped to havenum_verticesrows.
-
get_face_attribute(name)¶ Same as
get_attribute()but reshaped to havenum_facesrows.
-
get_voxel_attribute(name)¶ Same as
get_attribute()but reshaped to havenum_voxelsrows.
-
set_attribute(name, val)¶ Set attribute to the given value.
-
remove_attribute(name)¶ Remove attribute from mesh.
-
get_attribute_names()¶ Get names of all attributes associated with this mesh.
-
is_manifold()¶ Return true iff this mesh is both vertex-manifold and edge-manifold.
-
is_vertex_manifold()¶ Return true iff this mesh is vertex-manifold.
A mesh is vertex-manifold if the 1-ring neighborhood of each vertex is a topological disk.
-
is_edge_manifold()¶ Return true iff this mesh is edge-manifold.
A mesh is edge-manifold if there are exactly 2 incident faces for all non-border edges. Border edges, by definition, only have 1 incident face.
-
is_closed()¶ Return true iff this mesh is closed.
A closed mesh constains no border. I.e. all edges have at least 2 incident faces.
-
is_oriented()¶ Return true iff the mesh is consistently oriented.
That is all non-bonary edges must represent locally 2-manifold or intersection of 2-manifold surfaces.
-