Modifier: use simplified bmesh -> mesh conversion

This commit is contained in:
2018-10-10 13:13:17 +11:00
parent 633e2cddd7
commit c61142c0b5
16 changed files with 17 additions and 22 deletions

View File

@@ -546,8 +546,7 @@ Mesh *AbcMeshWriter::getFinalMesh(bool &r_needsfree)
BM_mesh_triangulate(bm, quad_method, ngon_method, tag_only, NULL, NULL, NULL);
struct BMeshToMeshParams bmmp = {0};
Mesh *result = BKE_mesh_from_bmesh_nomain(bm, &bmmp);
Mesh *result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);
mesh = result;

View File

@@ -1202,7 +1202,7 @@ static Mesh *create_orco_mesh(Object *ob, Mesh *me, BMEditMesh *em, int layer)
int free;
if (em) {
mesh = BKE_mesh_from_bmesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
mesh = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, 0);
}
else {
mesh = BKE_mesh_copy_for_eval(me, true);
@@ -2016,7 +2016,7 @@ static void editbmesh_calc_modifiers(
}
else {
me = BKE_mesh_from_bmesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
me = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, 0);
ASSERT_IS_VALID_MESH(me);
if (deformedVerts) {

View File

@@ -769,11 +769,7 @@ Mesh *BKE_mesh_from_bmesh_for_eval_nomain(BMesh *bm, const int64_t cd_mask_extra
Mesh *BKE_mesh_from_editmesh_with_coords_thin_wrap(
BMEditMesh *em, CustomDataMask data_mask, float (*vertexCos)[3])
{
Mesh *me = BKE_mesh_from_bmesh_nomain(
em->bm,
&(struct BMeshToMeshParams){
.cd_mask_extra = data_mask,
});
Mesh *me = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, data_mask);
if (vertexCos) {
/* We will own this array in the future. */
BKE_mesh_apply_vert_coords(me, vertexCos);

View File

@@ -1094,7 +1094,7 @@ Mesh *BKE_modifier_get_evaluated_mesh_from_evaluated_object(Object *ob_eval, boo
/* Note: currently we have no equivalent to derived cagemesh or even final dm in BMEditMesh...
* This is TODO in core depsgraph/modifier stack code still. */
BMEditMesh *em = BKE_editmesh_from_object(ob_eval);
me = BKE_mesh_from_bmesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
me = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, 0);
*r_free_mesh = true;
}
else {

View File

@@ -448,7 +448,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
if (set_wn_strength)
bevel_set_weighted_normal_face_strength(bm, scene);
result = BKE_mesh_from_bmesh_nomain(bm, &(struct BMeshToMeshParams){0});
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BLI_assert(bm->vtoolflagpool == NULL &&
bm->etoolflagpool == NULL &&

View File

@@ -317,7 +317,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
MEM_freeN(looptris);
}
result = BKE_mesh_from_bmesh_nomain(bm, &((struct BMeshToMeshParams){0}));
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);

View File

@@ -186,7 +186,7 @@ static Mesh *applyModifier(
/* update for display only */
dmd->face_count = bm->totface;
result = BKE_mesh_from_bmesh_nomain(bm, &((struct BMeshToMeshParams){0}));
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BLI_assert(bm->vtoolflagpool == NULL &&
bm->etoolflagpool == NULL &&
bm->ftoolflagpool == NULL); /* make sure we never alloc'd these */

View File

@@ -106,7 +106,7 @@ static Mesh *doEdgeSplit(Mesh *mesh, EdgeSplitModifierData *emd, const ModifierE
/* BM_mesh_validate(bm); */ /* for troubleshooting */
result = BKE_mesh_from_bmesh_nomain(bm, &((struct BMeshToMeshParams){0}));
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);
result->runtime.cd_dirty_vert |= CD_MASK_NORMAL;

View File

@@ -162,7 +162,7 @@ static void deformVerts(
if (edit_btmesh) {
/* In edit mode get directly from the edit mesh. */
psmd->mesh_original = BKE_mesh_from_bmesh_nomain(edit_btmesh->bm, &(struct BMeshToMeshParams){0});
psmd->mesh_original = BKE_mesh_from_bmesh_for_eval_nomain(edit_btmesh->bm, 0);
}
else {
/* Otherwise get regular mesh. */

View File

@@ -126,7 +126,7 @@ static void deformVertsEM(
Mesh *mesh_src = mesh;
if (mesh_src == NULL) {
mesh_src = BKE_mesh_from_bmesh_nomain(editData->bm, &(struct BMeshToMeshParams){0});
mesh_src = BKE_mesh_from_bmesh_for_eval_nomain(editData->bm, 0);
}
BLI_assert(mesh_src->totvert == numVerts);

View File

@@ -1880,7 +1880,7 @@ static Mesh *base_skin(Mesh *origmesh,
if (!bm)
return NULL;
result = BKE_mesh_from_bmesh_nomain(bm, &(struct BMeshToMeshParams){0});
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);
result->runtime.cd_dirty_vert |= CD_MASK_NORMAL;

View File

@@ -232,7 +232,7 @@ static void deformVertsEM(
Mesh *mesh_src = mesh;
if (mesh_src == NULL) {
mesh_src = BKE_mesh_from_bmesh_nomain(editData->bm, &(struct BMeshToMeshParams){0});
mesh_src = BKE_mesh_from_bmesh_for_eval_nomain(editData->bm, 0);
}
BLI_assert(mesh_src->totvert == numVerts);

View File

@@ -53,7 +53,7 @@ static Mesh *triangulate_mesh(Mesh *mesh, const int quad_method, const int ngon_
BM_mesh_triangulate(bm, quad_method, ngon_method, false, NULL, NULL, NULL);
result = BKE_mesh_from_bmesh_nomain(bm, &((struct BMeshToMeshParams){0}));
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);
total_edges = result->totedge;

View File

@@ -177,7 +177,7 @@ Mesh *MOD_get_mesh_eval(
}
else if (ob->type == OB_MESH) {
if (em) {
mesh = BKE_mesh_from_bmesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
mesh = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, 0);
}
else {
/* TODO(sybren): after modifier conversion of DM to Mesh is done, check whether

View File

@@ -332,7 +332,7 @@ static void deformVertsEM(
Mesh *mesh_src = mesh;
if (mesh_src == NULL) {
mesh_src = BKE_mesh_from_bmesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
mesh_src = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, 0);
}
BLI_assert(mesh_src->totvert == numVerts);

View File

@@ -93,7 +93,7 @@ static Mesh *WireframeModifier_do(WireframeModifierData *wmd, Object *ob, Mesh *
MAX2(ob->totcol - 1, 0),
false);
result = BKE_mesh_from_bmesh_nomain(bm, &(struct BMeshToMeshParams){0});
result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0);
BM_mesh_free(bm);
result->runtime.cd_dirty_vert |= CD_MASK_NORMAL;