unwrapper wasnt working properly when UVSyncSelection was NOT enabled.

unwrapper and UV mapping menu items were not selecting UV's when initializing a new UV layer
selecting with the brush (BB) in the UV window did not update in the 3D view realtime, use the lock settings to make this work.
This commit is contained in:
Campbell Barton 2007-09-18 02:59:57 +00:00
parent b32e5f7cb4
commit a87b2ff22b
3 changed files with 27 additions and 10 deletions

@ -365,6 +365,14 @@ void calculate_uv_map(unsigned short mapmode)
if (!EM_texFaceCheck())
return;
/* select new UV's */
if ((G.sima->flag & SI_SYNC_UVSEL)==0) {
for(efa=em->faces.first; efa; efa=efa->next) {
MTFace *tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
SIMA_FACESEL_SET(efa, tf);
}
}
}
ob=OBACT;

@ -964,7 +964,6 @@ void uvedit_selectionCB(short selecting, Object *editobj, short *mval, float rad
EditFace *efa;
float offset[2];
MTFace *tface;
float ellipse[2]; // we need to deal with ellipses, as
// non square textures require for circle
// selection. this ellipse is normalized; r = 1.0
@ -995,11 +994,14 @@ void uvedit_selectionCB(short selecting, Object *editobj, short *mval, float rad
bglFlush();
glDrawBuffer(GL_BACK);
}
if (selecting == LEFTMOUSE) EM_select_flush();
else EM_deselect_flush();
if (G.sima->lock && (G.sima->flag & SI_SYNC_UVSEL))
force_draw_plus(SPACE_VIEW3D, 0);
}
if (selecting == LEFTMOUSE) EM_select_flush();
else EM_deselect_flush();
allqueue(REDRAWVIEW3D, 0);
}

@ -215,14 +215,11 @@ ParamHandle *construct_param_handle(EditMesh *em, short implicit, short fill, sh
float *uv[4];
int nverts;
if (efa->h)
if ((efa->h) || (sel && (efa->f & SELECT)==0))
continue;
tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if (sel && !SIMA_FACESEL_CHECK(efa, tf))
continue;
if (implicit &&
!( SIMA_UVSEL_CHECK(efa, tf, 0) ||
SIMA_UVSEL_CHECK(efa, tf, 1) ||
@ -284,7 +281,7 @@ ParamHandle *construct_param_handle(EditMesh *em, short implicit, short fill, sh
}
extern int EM_texFaceCheck();
extern int EM_texFaceCheck(void);
void unwrap_lscm(short seamcut)
{
@ -300,6 +297,16 @@ void unwrap_lscm(short seamcut)
if (!EM_texFaceCheck())
return;
/* select new UV's */
if ((G.sima->flag & SI_SYNC_UVSEL)==0) {
EditFace *efa;
MTFace *tf;
for(efa=em->faces.first; efa; efa=efa->next) {
tf= (MTFace *)CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
SIMA_FACESEL_SET(efa, tf);
}
}
}
handle = construct_param_handle(em, 0, fillholes, seamcut == 0);