Mesh: Use more efficient update tag when flipping faces #106250
|
@ -72,6 +72,11 @@ void BKE_mesh_tag_topology_changed(struct Mesh *mesh);
|
||||||
*/
|
*/
|
||||||
void BKE_mesh_tag_edges_split(struct Mesh *mesh);
|
void BKE_mesh_tag_edges_split(struct Mesh *mesh);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call when face vertex order has changed but positions and faces haven't changed
|
||||||
|
*/
|
||||||
|
void BKE_mesh_tag_face_winding_changed(struct Mesh *mesh);
|
||||||
|
|
||||||
/* *** mesh.c *** */
|
/* *** mesh.c *** */
|
||||||
|
|
||||||
struct BMesh *BKE_mesh_to_bmesh_ex(const struct Mesh *me,
|
struct BMesh *BKE_mesh_to_bmesh_ex(const struct Mesh *me,
|
||||||
|
|
|
@ -243,6 +243,12 @@ void BKE_mesh_tag_edges_split(struct Mesh *mesh)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BKE_mesh_tag_face_winding_changed(Mesh *mesh)
|
||||||
|
{
|
||||||
|
mesh->runtime->vert_normals_dirty = true;
|
||||||
|
mesh->runtime->poly_normals_dirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
void BKE_mesh_tag_positions_changed(Mesh *mesh)
|
void BKE_mesh_tag_positions_changed(Mesh *mesh)
|
||||||
{
|
{
|
||||||
mesh->runtime->vert_normals_dirty = true;
|
mesh->runtime->vert_normals_dirty = true;
|
||||||
|
|
|
@ -61,7 +61,7 @@ void flip_faces(Mesh &mesh, const IndexMask &selection)
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
BKE_mesh_tag_topology_changed(&mesh);
|
BKE_mesh_tag_face_winding_changed(&mesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace blender::geometry
|
} // namespace blender::geometry
|
||||||
|
|
Loading…
Reference in New Issue