# datastructures

## Network

### Functions

 network_complement Generate the complement network of a network. network_count_crossings Count the number of crossings (pairs of crossing edges) in the network. network_disconnected_edges Get the disconnected edge groups in a network. network_disconnected_nodes Get the disconnected node groups in a network. network_embed_in_plane_proxy network_embed_in_plane Embed the network in the plane. network_explode Explode a network into its connected components. network_find_crossings Identify all pairs of crossing edges in a network. network_find_cycles Find the faces of a network. network_is_connected Verify that the network is connected. network_is_crossed Verify if a network has crossing edges. network_is_planar_embedding Verify that a network is embedded in the plane without crossing edges. network_is_planar Check if the network is planar. network_is_xy Verify that a network lies in the XY plane. network_join_edges network_polylines Join network edges into polylines. network_shortest_path Find the shortest path between two nodes of the network. network_smooth_centroid Smooth a network by moving every free node to the centroid of its neighbors. network_split_edge Split and edge by inserting a node along its length. network_transform Transform a network. network_transformed Transform a copy of network.

### CPython-only

 network_adjacency_matrix Creates a node adjacency matrix from a Network datastructure. network_connectivity_matrix Creates a connectivity matrix from a Network datastructure. network_degree_matrix Creates a node degree matrix from a Network datastructure. network_laplacian_matrix Construct a Laplacian matrix from a Network datastructure.

## Mesh

 Mesh Implementation of the base mesh data structure that adds some of the mesh algorithms as methods.

### Functions

 mesh_add_vertex_to_face_edge Add an existing vertex of the mesh to an existing face. mesh_bounding_box_xy Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane. mesh_bounding_box Compute the (axis aligned) bounding box of a mesh. mesh_collapse_edge Collapse an edge to its first or second vertex, or to an intermediate point. mesh_connected_components mesh_conway_ambo Generates the ambo mesh from a seed mesh. mesh_conway_bevel Generates the bevel mesh from a seed mesh. mesh_conway_dual Generates the dual mesh from a seed mesh. mesh_conway_expand Generates the expand mesh from a seed mesh. mesh_conway_gyro Generates the gyro mesh from a seed mesh. mesh_conway_join Generates the join mesh from a seed mesh. mesh_conway_kis Generates the kis mesh from a seed mesh. mesh_conway_meta Generates the meta mesh from a seed mesh. mesh_conway_needle Generates the needle mesh from a seed mesh. mesh_conway_ortho Generates the ortho mesh from a seed mesh. mesh_conway_snub Generates the snub mesh from a seed mesh. mesh_conway_truncate Generates the truncate mesh from a seed mesh. mesh_conway_zip Generates the zip mesh from a seed mesh. mesh_delete_duplicate_vertices Cull all duplicate vertices of a mesh and sanitize affected faces. mesh_disconnected_faces Get the disconnected face groups in a mesh. mesh_disconnected_vertices Get the disconnected vertex groups in a mesh. mesh_dual Construct the dual of a mesh. mesh_explode Explode a mesh into its disconnected parts. mesh_face_adjacency Build a face adjacency dict. mesh_flatness Compute mesh flatness per face. mesh_flip_cycles Flip the cycle directions of all faces. mesh_insert_vertex_on_edge Insert a vertex in the faces adjacent to an edge, between the two edge vertices. mesh_is_connected Verify that the mesh is connected. mesh_merge_faces Merge two faces of a mesh over their shared edge. mesh_offset Offset a mesh. mesh_planarize_faces Planarise a set of connected faces. mesh_quads_to_triangles mesh_slice_plane Slice a mesh with a plane and construct the resulting submeshes. mesh_smooth_area Smooth a mesh by moving each vertex to the barycenter of the centroids of the surrounding faces, weighted by area. mesh_smooth_centerofmass Smooth a mesh by moving every free vertex to the center of mass of the polygon formed by the neighboring vertices. mesh_smooth_centroid Smooth a mesh by moving every free vertex to the centroid of its neighbors. mesh_split_edge Split and edge by inserting a vertex along its length. mesh_split_face Split a face by inserting an edge between two specified vertices. mesh_subdivide_catmullclark Subdivide a mesh using the Catmull-Clark algorithm. mesh_subdivide_corner Subdivide a mesh by cutting corners. mesh_subdivide_doosabin Subdivide a mesh following the doo-sabin scheme. mesh_subdivide_frames Subdivide a mesh by creating offset frames and windows on its faces. mesh_subdivide_quad Subdivide a mesh such that all faces are quads. mesh_subdivide_tri Subdivide a mesh using simple insertion of vertices. mesh_subdivide Subdivide the input mesh. mesh_substitute_vertex_in_faces Substitute in a mesh a vertex by another one. mesh_thicken Thicken a mesh. mesh_transform Transform a mesh. mesh_transformed Transform a copy of mesh. mesh_unify_cycles Unify the cycle directions of all faces. mesh_unweld_edges Unwelds a mesh along edges. mesh_unweld_vertices Unweld a face of the mesh. mesh_weld Weld vertices of a mesh within some precision distance. meshes_join_and_weld Join and and weld meshes within some precision distance. meshes_join Join meshes without welding. trimesh_collapse_edge Collapse an edge to its first or second vertex, or to an intermediate point. trimesh_face_circle Get data on circumcentre of triangular face. trimesh_gaussian_curvature Compute the gaussian curvature at the vertices of a triangle mesh using the angular deficit. trimesh_mean_curvature trimesh_remesh Remesh until all edges have a specified target length. trimesh_split_edge Split an edge of a triangle mesh. trimesh_subdivide_loop Subdivide a triangle mesh using the Loop algorithm. trimesh_swap_edge Replace an edge of the mesh by an edge connecting the opposite vertices of the adjacent faces.

### CPython-only

 mesh_adjacency_matrix Creates a vertex adjacency matrix from a Mesh datastructure. mesh_connectivity_matrix Creates a connectivity matrix from a Mesh datastructure. mesh_contours_numpy Compute the contours of the mesh. mesh_degree_matrix Creates a vertex degree matrix from a Mesh datastructure. mesh_face_matrix Construct the face matrix from a Mesh datastructure. mesh_geodesic_distances_numpy Compute geodesic from the vertices of a mesh to given source vertices. mesh_isolines_numpy Compute the isolines of a specified attribute of the vertices of a mesh. mesh_laplacian_matrix Construct a Laplacian matrix with uniform weights from a mesh data structure. mesh_oriented_bounding_box_numpy Compute the (axis aligned) bounding box of a mesh. mesh_oriented_bounding_box_xy_numpy Compute the (axis aligned) bounding box of a projection of the mesh in the XY plane. mesh_transform_numpy Transform a mesh. mesh_transformed_numpy Transform a copy of mesh. trimesh_cotangent_laplacian_matrix Construct the Laplacian of a triangular mesh with cotangent weights. trimesh_descent trimesh_pull_points_numpy trimesh_samplepoints_numpy Compute sample points on a triangle mesh surface trimesh_smooth_laplacian_cotangent Smooth a triangle mesh using a laplacian matrix with cotangent weights. trimesh_vertexarea_matrix Compute the n x n diagonal matrix of per-vertex voronoi areas.

## VolMesh

### Classes

 VolMesh Implementation of the base volmesh data structure that adds some of the mesh algorithms as methods.

### Functions

 volmesh_bounding_box Compute the (axis aligned) bounding box of a volmesh. volmesh_transform Transform a mesh. volmesh_transformed Transform a copy of volmesh.