BMesh Utilities (bmesh.utils)

This module provides access to blenders bmesh data structures.

bmesh.utils.edge_rotate(edge, ccw=False)

Rotate the edge and return the newly created edge. If rotating the edge fails, None will be returned.

Parameters:
  • edge (bmesh.types.BMEdge) – The edge to rotate.

  • ccw (bool) – When True the edge will be rotated counter clockwise.

Returns:

The newly rotated edge.

Return type:

bmesh.types.BMEdge

bmesh.utils.edge_split(edge, vert, fac)

Split an edge, return the newly created data.

Parameters:
  • edge (bmesh.types.BMEdge) – The edge to split.

  • vert (bmesh.types.BMVert) – One of the verts on the edge, defines the split direction.

  • fac (float) – The point on the edge where the new vert will be created [0 - 1].

Returns:

The newly created (edge, vert) pair.

Return type:

tuple[bmesh.types.BMEdge, bmesh.types.BMVert]

bmesh.utils.face_flip(faces)

Flip the faces direction.

Parameters:

face (bmesh.types.BMFace) – Face to flip.

bmesh.utils.face_join(faces, remove=True)

Joins a sequence of faces.

Parameters:
  • faces (bmesh.types.BMFace) – Sequence of faces.

  • remove (bool) – Remove the edges and vertices between the faces.

Returns:

The newly created face or None on failure.

Return type:

bmesh.types.BMFace

bmesh.utils.face_split(face, vert_a, vert_b, coords=(), use_exist=True, example=None)

Face split with optional intermediate points.

Parameters:
  • face (bmesh.types.BMFace) – The face to cut.

  • vert_a (bmesh.types.BMVert) – First vertex to cut in the face (face must contain the vert).

  • vert_b (bmesh.types.BMVert) – Second vertex to cut in the face (face must contain the vert).

  • coords (Sequence[Sequence[float]]) – Optional sequence of 3D points in between vert_a and vert_b.

  • use_exist (bool) – .Use an existing edge if it exists (Only used when coords argument is empty or omitted)

  • example (bmesh.types.BMEdge) – Newly created edge will copy settings from this one.

Returns:

The newly created face or None on failure.

Return type:

tuple[bmesh.types.BMFace, bmesh.types.BMLoop]

bmesh.utils.face_split_edgenet(face, edgenet)

Splits a face into any number of regions defined by an edgenet.

Parameters:
Returns:

The newly created faces.

Return type:

tuple[bmesh.types.BMFace, …]

Note

Regions defined by edges need to connect to the face, otherwise they’re ignored as loose edges.

bmesh.utils.face_vert_separate(face, vert)

Rip a vertex in a face away and add a new vertex.

Parameters:
Return vert:

The newly created vertex or None on failure.

Rtype vert:

bmesh.types.BMVert

Note

This is the same as loop_separate, and has only been added for convenience.

bmesh.utils.loop_separate(loop)

Rip a vertex in a face away and add a new vertex.

Parameters:

loop (bmesh.types.BMLoop) – The loop to separate.

Return vert:

The newly created vertex or None on failure.

Rtype vert:

bmesh.types.BMVert

bmesh.utils.vert_collapse_edge(vert, edge)

Collapse a vertex into an edge.

Parameters:
Returns:

The resulting edge from the collapse operation.

Return type:

bmesh.types.BMEdge

bmesh.utils.vert_collapse_faces(vert, edge, fac, join_faces)

Collapses a vertex that has only two manifold edges onto a vertex it shares an edge with.

Parameters:
  • vert (bmesh.types.BMVert) – The vert that will be collapsed.

  • edge (bmesh.types.BMEdge) – The edge to collapse into.

  • fac (float) – The factor to use when merging customdata [0 - 1].

  • join_faces (bool) – When true the faces around the vertex will be joined otherwise collapse the vertex by merging the 2 edges this vertex connects to into one.

Returns:

The resulting edge from the collapse operation.

Return type:

bmesh.types.BMEdge

bmesh.utils.vert_dissolve(vert)

Dissolve this vertex (will be removed).

Parameters:

vert (bmesh.types.BMVert) – The vert to be dissolved.

Returns:

True when the vertex dissolve is successful.

Return type:

bool

bmesh.utils.vert_separate(vert, edges)

Separate this vertex at every edge.

Parameters:
Returns:

The newly separated verts (including the vertex passed).

Return type:

tuple[bmesh.types.BMVert, …]

bmesh.utils.vert_splice(vert, vert_target)

Splice vert into vert_target.

Parameters:

Note

The verts mustn’t share an edge or face.