Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_triangulate.c
| Show All 38 Lines | static Mesh *triangulate_mesh(Mesh *mesh, const int quad_method, const int ngon_method) | ||||
| int total_edges, i; | int total_edges, i; | ||||
| MEdge *me; | MEdge *me; | ||||
| bm = BKE_mesh_to_bmesh_ex( | bm = BKE_mesh_to_bmesh_ex( | ||||
| mesh, | mesh, | ||||
| &((struct BMeshCreateParams){0}), | &((struct BMeshCreateParams){0}), | ||||
| &((struct BMeshFromMeshParams){ | &((struct BMeshFromMeshParams){ | ||||
| .calc_face_normal = true, | .calc_face_normal = true, | ||||
| .cd_mask_extra = CD_MASK_ORIGINDEX, | .cd_mask_extra = {.vmask=CD_MASK_ORIGINDEX, .emask=CD_MASK_ORIGINDEX, .pmask=CD_MASK_ORIGINDEX}, | ||||
| })); | })); | ||||
| BM_mesh_triangulate(bm, quad_method, ngon_method, false, NULL, NULL, NULL); | BM_mesh_triangulate(bm, quad_method, ngon_method, false, NULL, NULL, NULL); | ||||
| result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0); | result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); | ||||
| BM_mesh_free(bm); | BM_mesh_free(bm); | ||||
| total_edges = result->totedge; | total_edges = result->totedge; | ||||
| me = result->medge; | me = result->medge; | ||||
| /* force drawing of all edges (seems to be omitted in CDDM_from_bmesh) */ | /* force drawing of all edges (seems to be omitted in CDDM_from_bmesh) */ | ||||
| for (i = 0; i < total_edges; i++, me++) | for (i = 0; i < total_edges; i++, me++) | ||||
| me->flag |= ME_EDGEDRAW | ME_EDGERENDER; | me->flag |= ME_EDGEDRAW | ME_EDGERENDER; | ||||
| ▲ Show 20 Lines • Show All 66 Lines • Show Last 20 Lines | |||||