Total displacement levels should be set in multires_topology_changed

This commit is contained in:
Sergey Sharybin
2011-01-30 17:55:48 +00:00
parent cc8fc51636
commit 14d8921fff
3 changed files with 7 additions and 3 deletions

View File

@@ -80,7 +80,7 @@ int multires_mdisp_corners(struct MDisps *s);
void multires_mdisp_smooth_bounds(struct MDisps *disps);
/* update multires data after topology changing */
void multires_topology_changed(struct Object *ob);
void multires_topology_changed(struct Scene *scene, struct Object *ob);
/**** interpolation stuff ****/
void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v);

View File

@@ -1720,11 +1720,15 @@ void multiresModifier_prepare_join(Scene *scene, Object *ob, Object *to_ob)
}
/* update multires data after topology changing */
void multires_topology_changed(Object *ob)
void multires_topology_changed(Scene *scene, Object *ob)
{
Mesh *me= (Mesh*)ob->data;
MDisps *mdisp= NULL, *cur= NULL;
int i, grid= 0, corners;
MultiresModifierData *mmd= get_multires_modifier(scene, ob);
if(mmd)
multires_set_tot_mdisps(me, mmd->totlvl);
CustomData_external_read(&me->fdata, &me->id, CD_MASK_MDISPS, me->totface);
mdisp= CustomData_get_layer(&me->fdata, CD_MDISPS);

View File

@@ -1311,7 +1311,7 @@ void load_editMesh(Scene *scene, Object *obedit)
mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
/* topology could be changed, ensure mdisps are ok */
multires_topology_changed(obedit);
multires_topology_changed(scene, obedit);
}
void remake_editMesh(Scene *scene, Object *ob)