Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-09-18 06:59:57 +0400
committerCampbell Barton <ideasman42@gmail.com>2007-09-18 06:59:57 +0400
commita87b2ff22b8884449bf04a0773370a33a3a410a3 (patch)
treea58d34d099d0d1c5810e0ed02d45d25d789832bb /source
parentb32e5f7cb451b238d5ce62c97fa9431d4befd11b (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/editface.c8
-rw-r--r--source/blender/src/editsima.c12
-rw-r--r--source/blender/src/unwrapper.c17
3 files changed, 27 insertions, 10 deletions
diff --git a/source/blender/src/editface.c b/source/blender/src/editface.c
index 5b86181b4df..65e335ea6ab 100644
--- a/source/blender/src/editface.c
+++ b/source/blender/src/editface.c
@@ -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;
diff --git a/source/blender/src/editsima.c b/source/blender/src/editsima.c
index a9d376dfbcd..876baa00260 100644
--- a/source/blender/src/editsima.c
+++ b/source/blender/src/editsima.c
@@ -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);
}
diff --git a/source/blender/src/unwrapper.c b/source/blender/src/unwrapper.c
index 05f128906ab..005119d448d 100644
--- a/source/blender/src/unwrapper.c
+++ b/source/blender/src/unwrapper.c
@@ -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);