diff options
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r-- | source/blender/modifiers/intern/MOD_bevel.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_boolean.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_decimate.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_edgesplit.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_fluidsim_util.c | 6 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_mirror.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_ocean.c | 5 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_particlesystem.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_remesh.c | 1 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_skin.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_triangulate.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_util.c | 2 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_wireframe.c | 2 |
13 files changed, 20 insertions, 12 deletions
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c index a05b7023392..0c00bb572be 100644 --- a/source/blender/modifiers/intern/MOD_bevel.c +++ b/source/blender/modifiers/intern/MOD_bevel.c @@ -212,7 +212,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes spread, mesh->smoothresh); - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); /* Make sure we never alloc'd these. */ BLI_assert(bm->vtoolflagpool == NULL && bm->etoolflagpool == NULL && bm->ftoolflagpool == NULL); diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index e55eeddbfa5..9868395c0e8 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -316,7 +316,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes MEM_freeN(looptris); } - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); BM_mesh_free(bm); diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c index e0764241f18..c113a2767a0 100644 --- a/source/blender/modifiers/intern/MOD_decimate.c +++ b/source/blender/modifiers/intern/MOD_decimate.c @@ -199,7 +199,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes updateFaceCount(ctx, dmd, bm->totface); - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); /* make sure we never alloc'd these */ BLI_assert(bm->vtoolflagpool == NULL && bm->etoolflagpool == NULL && bm->ftoolflagpool == NULL); BLI_assert(bm->vtable == NULL && bm->etable == NULL && bm->ftable == NULL); diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c index 59d560b9a4a..69ba4aa2795 100644 --- a/source/blender/modifiers/intern/MOD_edgesplit.c +++ b/source/blender/modifiers/intern/MOD_edgesplit.c @@ -97,7 +97,7 @@ static Mesh *doEdgeSplit(Mesh *mesh, EdgeSplitModifierData *emd) /* BM_mesh_validate(bm); */ /* for troubleshooting */ - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); BM_mesh_free(bm); result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c index 587aa108fd1..748bf4db4e2 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.c +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c @@ -513,6 +513,12 @@ static Mesh *fluidsim_read_cache( return NULL; } + BKE_mesh_copy_settings(newmesh, orgmesh); + + /* Fluid simulation has a texture space that based on the bounds of the fluid mesh. + * This does not seem particularly useful, but it's backwards compatible. */ + BKE_mesh_texspace_calc(newmesh); + /* load vertex velocities, if they exist... * TODO? use generate flag as loading flag as well? * warning, needs original .bobj.gz mesh loading filename */ diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index 21ec3505dc9..c91f5d41c5e 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -118,7 +118,7 @@ static Mesh *doBiscetOnMirrorPlane(MirrorModifierData *mmd, } } - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); BM_mesh_free(bm); return result; diff --git a/source/blender/modifiers/intern/MOD_ocean.c b/source/blender/modifiers/intern/MOD_ocean.c index aff5b8b071b..97be42367d4 100644 --- a/source/blender/modifiers/intern/MOD_ocean.c +++ b/source/blender/modifiers/intern/MOD_ocean.c @@ -268,7 +268,7 @@ static void generate_ocean_geometry_uvs(void *__restrict userdata, } } -static Mesh *generate_ocean_geometry(OceanModifierData *omd) +static Mesh *generate_ocean_geometry(OceanModifierData *omd, Mesh *mesh_orig) { Mesh *result; @@ -296,6 +296,7 @@ static Mesh *generate_ocean_geometry(OceanModifierData *omd) gogd.sy /= gogd.ry; result = BKE_mesh_new_nomain(num_verts, 0, 0, num_polys * 4, num_polys); + BKE_mesh_copy_settings(result, mesh_orig); gogd.mverts = result->mvert; gogd.mpolys = result->mpoly; @@ -377,7 +378,7 @@ static Mesh *doOcean(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mes } if (omd->geometry_mode == MOD_OCEAN_GEOM_GENERATE) { - result = generate_ocean_geometry(omd); + result = generate_ocean_geometry(omd, mesh); BKE_mesh_ensure_normals(result); } else if (omd->geometry_mode == MOD_OCEAN_GEOM_DISPLACE) { diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c index a7c7c207cd6..67a64921bbc 100644 --- a/source/blender/modifiers/intern/MOD_particlesystem.c +++ b/source/blender/modifiers/intern/MOD_particlesystem.c @@ -168,7 +168,7 @@ static void deformVerts(ModifierData *md, if (em) { /* In edit mode get directly from the edit mesh. */ - psmd->mesh_original = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, NULL); + psmd->mesh_original = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, NULL, mesh); } else { /* Otherwise get regular mesh. */ diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c index 631401d9d9e..df84f3db55c 100644 --- a/source/blender/modifiers/intern/MOD_remesh.c +++ b/source/blender/modifiers/intern/MOD_remesh.c @@ -185,6 +185,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *UNUSED(c } } + BKE_mesh_copy_settings(result, mesh); BKE_mesh_calc_edges(result, true, false); result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; return result; diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c index 6ba834c6934..6e7a0b0dbae 100644 --- a/source/blender/modifiers/intern/MOD_skin.c +++ b/source/blender/modifiers/intern/MOD_skin.c @@ -1871,7 +1871,7 @@ static Mesh *base_skin(Mesh *origmesh, SkinModifierData *smd) return NULL; } - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, origmesh); BM_mesh_free(bm); result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; diff --git a/source/blender/modifiers/intern/MOD_triangulate.c b/source/blender/modifiers/intern/MOD_triangulate.c index 1582c27960e..7fba7e864ae 100644 --- a/source/blender/modifiers/intern/MOD_triangulate.c +++ b/source/blender/modifiers/intern/MOD_triangulate.c @@ -65,7 +65,7 @@ static Mesh *triangulate_mesh(Mesh *mesh, BM_mesh_triangulate(bm, quad_method, ngon_method, min_vertices, false, NULL, NULL, NULL); - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, &cddata_masks); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, &cddata_masks, mesh); BM_mesh_free(bm); if (keep_clnors) { diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index 36e712a1958..1e3c747022c 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -182,7 +182,7 @@ Mesh *MOD_deform_mesh_eval_get(Object *ob, } else if (ob->type == OB_MESH) { if (em) { - mesh = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, NULL); + mesh = BKE_mesh_from_bmesh_for_eval_nomain(em->bm, NULL, ob->data); } else { /* TODO(sybren): after modifier conversion of DM to Mesh is done, check whether diff --git a/source/blender/modifiers/intern/MOD_wireframe.c b/source/blender/modifiers/intern/MOD_wireframe.c index 7af9ef6f5b6..3dd6e00c3a5 100644 --- a/source/blender/modifiers/intern/MOD_wireframe.c +++ b/source/blender/modifiers/intern/MOD_wireframe.c @@ -91,7 +91,7 @@ static Mesh *WireframeModifier_do(WireframeModifierData *wmd, Object *ob, Mesh * MAX2(ob->totcol - 1, 0), false); - result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL); + result = BKE_mesh_from_bmesh_for_eval_nomain(bm, NULL, mesh); BM_mesh_free(bm); result->runtime.cd_dirty_vert |= CD_MASK_NORMAL; |