resolve glitch in the image space where mask editing and UVs would conflict.

now UV editing overrides mask.
This commit is contained in:
Campbell Barton 2012-07-31 14:16:27 +00:00
parent 8f6197bd08
commit c42d0189e5
7 changed files with 18 additions and 15 deletions

@ -380,6 +380,8 @@ class IMAGE_HT_header(Header):
if not show_render:
layout.prop(sima, "use_image_pin", text="")
layout.prop(sima, "mode", text="")
# uv editing
if show_uvedit:
uvedit = sima.uv_editor
@ -405,9 +407,7 @@ class IMAGE_HT_header(Header):
mesh = context.edit_object.data
layout.prop_search(mesh.uv_textures, "active", mesh, "uv_textures", text="")
layout.prop(sima, "mode", text="")
if mode == 'MASK':
elif mode == 'MASK':
row = layout.row()
row.template_ID(sima, "mask", new="mask.new")

@ -161,8 +161,8 @@ void BKE_mesh_convert_mfaces_to_mpolys_ex(struct ID *id,
struct CustomData *fdata, struct CustomData *ldata, struct CustomData *pdata,
int totedge_i, int totface_i, int totloop_i, int totpoly_i,
struct MEdge *medge, struct MFace *mface,
int *totloop_r, int *totpoly_r,
struct MLoop **mloop_r, struct MPoly **mpoly_r);
int *totloop_r, int *totpoly_r,
struct MLoop **mloop_r, struct MPoly **mpoly_r);
void BKE_mesh_calc_normals_tessface(struct MVert *mverts, int numVerts, struct MFace *mfaces, int numFaces, float (*faceNors_r)[3]);

@ -1754,7 +1754,6 @@ DerivedMesh *CDDM_from_curve_orco(struct Scene *scene, Object *ob)
DerivedMesh *CDDM_from_curve_displist(Object *ob, ListBase *dispbase, int **orco_index_ptr)
{
const short do_orco_as_uv= 1;
DerivedMesh *dm;
CDDerivedMesh *cddm;
MVert *allvert;
@ -1787,10 +1786,6 @@ DerivedMesh *CDDM_from_curve_displist(Object *ob, ListBase *dispbase, int **orco
CDDM_calc_edges(dm);
if (do_orco_as_uv ) {
BKE_curve_make_orco(NULL, ob);
}
return dm;
}

@ -71,7 +71,7 @@ int ED_space_image_show_paint(struct SpaceImage *sima);
int ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit);
int ED_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit);
int ED_space_image_check_show_maskedit(struct SpaceImage *sima);
int ED_space_image_check_show_maskedit(struct Scene *scene, struct SpaceImage *sima);
int ED_space_image_maskedit_poll(struct bContext *C);
int ED_space_image_maskedit_mask_poll(struct bContext *C);

@ -476,7 +476,8 @@ int ED_operator_mask(bContext *C)
case SPACE_IMAGE:
{
SpaceImage *sima = sa->spacedata.first;
return ED_space_image_check_show_maskedit(sima);
Scene *scene = CTX_data_scene(C);
return ED_space_image_check_show_maskedit(scene, sima);
}
}
}

@ -352,8 +352,14 @@ int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
}
/* matches clip function */
int ED_space_image_check_show_maskedit(SpaceImage *sima)
int ED_space_image_check_show_maskedit(Scene *scene, SpaceImage *sima)
{
/* check editmode - this is reserved for UV editing */
Object *ob = OBACT;
if (ob && ob->mode & OB_MODE_EDIT) {
return FALSE;
}
return (sima->mode == SI_MODE_MASK);
}
@ -362,7 +368,8 @@ int ED_space_image_maskedit_poll(bContext *C)
SpaceImage *sima = CTX_wm_space_image(C);
if (sima && sima->image) {
return ED_space_image_check_show_maskedit(sima);
Scene *scene = CTX_data_scene(C);
return ED_space_image_check_show_maskedit(scene, sima);
}
return FALSE;

@ -126,7 +126,7 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
}
/* convert object type to mesh */
BKE_mesh_from_nurbs_displist(tmpobj, &dispbase, uv_from_orco ? &orco_index : NULL);
BKE_mesh_from_nurbs_displist(tmpobj, &dispbase, uv_from_orco ? (int **)&orco_index : NULL);
tmpmesh = tmpobj->data;