[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11992] trunk/blender/source/blender: UV Editing is now done in editmode rather then UV/Face Select mode.
Campbell Barton
cbarton at metavr.com
Mon Sep 10 14:26:36 CEST 2007
Revision: 11992
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11992
Author: campbellbarton
Date: 2007-09-10 14:26:36 +0200 (Mon, 10 Sep 2007)
Log Message:
-----------
UV Editing is now done in editmode rather then UV/Face Select mode.
Notes
* you cant edit UV's in the image window in "UV Face Select" mode. (removed UV from the name)
* going into Face Select mode no longer adds UV's and does not need UV's to work.
* The UV Calculation menu is now in editmode (Alt+W)
Todo..
* Image replace - partly broken in stable also.
* Rotate/Mirror UV/VCol are still only in Face Select mode.
* Hide/Reveal is not quite right, (issue with editmode flushing)
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_mesh.h
trunk/blender/source/blender/blenkernel/intern/mesh.c
trunk/blender/source/blender/include/BDR_editface.h
trunk/blender/source/blender/include/BIF_editmesh.h
trunk/blender/source/blender/include/BIF_editsima.h
trunk/blender/source/blender/include/editmesh.h
trunk/blender/source/blender/src/buttons_editing.c
trunk/blender/source/blender/src/drawimage.c
trunk/blender/source/blender/src/drawmesh.c
trunk/blender/source/blender/src/drawobject.c
trunk/blender/source/blender/src/editface.c
trunk/blender/source/blender/src/editmesh.c
trunk/blender/source/blender/src/editmesh_lib.c
trunk/blender/source/blender/src/editmesh_mods.c
trunk/blender/source/blender/src/editmesh_tools.c
trunk/blender/source/blender/src/editobject.c
trunk/blender/source/blender/src/editsima.c
trunk/blender/source/blender/src/editview.c
trunk/blender/source/blender/src/header_image.c
trunk/blender/source/blender/src/header_view3d.c
trunk/blender/source/blender/src/space.c
trunk/blender/source/blender/src/transform_conversions.c
trunk/blender/source/blender/src/transform_generics.c
trunk/blender/source/blender/src/unwrapper.c
trunk/blender/source/blender/src/vpaint.c
Modified: trunk/blender/source/blender/blenkernel/BKE_mesh.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mesh.h 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/blenkernel/BKE_mesh.h 2007-09-10 12:26:36 UTC (rev 11992)
@@ -93,9 +93,13 @@
/* map from uv vertex to face (for select linked, stitch, uv suburf) */
-struct UvVertMap;
-typedef struct UvVertMap UvVertMap;
+/* UvVertMap */
+typedef struct UvVertMap {
+ struct UvMapVert **vert;
+ struct UvMapVert *buf;
+} UvVertMap;
+
typedef struct UvMapVert {
struct UvMapVert *next;
unsigned int f;
Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c 2007-09-10 12:26:36 UTC (rev 11992)
@@ -1130,13 +1130,6 @@
#endif
}
-/* UvVertMap */
-
-struct UvVertMap {
- struct UvMapVert **vert;
- struct UvMapVert *buf;
-};
-
UvVertMap *make_uv_vert_map(struct MFace *mface, struct MTFace *tface, unsigned int totface, unsigned int totvert, int selected, float *limit)
{
UvVertMap *vmap;
Modified: trunk/blender/source/blender/include/BDR_editface.h
===================================================================
--- trunk/blender/source/blender/include/BDR_editface.h 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/include/BDR_editface.h 2007-09-10 12:26:36 UTC (rev 11992)
@@ -34,10 +34,11 @@
#define BDR_EDITFACE_H
struct MTFace;
+struct EditFace;
struct Mesh;
struct MCol;
-struct MTFace *get_active_tface(struct MCol **mcol);
+struct MTFace *get_active_tface(struct EditFace **efa, struct MCol **mcol);
void calculate_uv_map(unsigned short mapmode);
void default_uv(float uv[][2], float size);
void make_tfaces(struct Mesh *me);
Modified: trunk/blender/source/blender/include/BIF_editmesh.h
===================================================================
--- trunk/blender/source/blender/include/BIF_editmesh.h 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/include/BIF_editmesh.h 2007-09-10 12:26:36 UTC (rev 11992)
@@ -35,6 +35,8 @@
#ifndef BIF_EDITMESH_H
#define BIF_EDITMESH_H
+#include "BKE_mesh.h"
+
struct EditMesh;
struct EditFace;
struct EditEdge;
@@ -238,4 +240,11 @@
void pathselect(void);
void loop_to_region(void);
void region_to_loop(void);
+
+UvVertMap *make_uv_vert_map_EM(int selected, int do_face_idx_array, float *limit);
+UvMapVert *get_uv_map_vert_EM(UvVertMap *vmap, unsigned int v);
+void free_uv_vert_map_EM(UvVertMap *vmap);
+
+int EM_texFaceCheck(void); /* can we edit UV's for this mesh?*/
+
#endif
Modified: trunk/blender/source/blender/include/BIF_editsima.h
===================================================================
--- trunk/blender/source/blender/include/BIF_editsima.h 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/include/BIF_editsima.h 2007-09-10 12:26:36 UTC (rev 11992)
@@ -31,7 +31,7 @@
*/
struct Mesh;
-
+struct EditMesh;
#define TF_PIN_MASK(id) (TF_PIN1 << id)
#define TF_SEL_MASK(id) (TF_SEL1 << id)
@@ -65,7 +65,7 @@
void pin_tface_uv(int mode);
void weld_align_menu_tface_uv(void);
void weld_align_tface_uv(char tool);
-void be_square_tface_uv(struct Mesh *me);
+void be_square_tface_uv(struct EditMesh *em);
void select_pinned_tface_uv(void);
void sima_sample_color(void);
Modified: trunk/blender/source/blender/include/editmesh.h
===================================================================
--- trunk/blender/source/blender/include/editmesh.h 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/include/editmesh.h 2007-09-10 12:26:36 UTC (rev 11992)
@@ -104,5 +104,6 @@
/* ******************* editmesh_tools.c */
+
#endif
Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/src/buttons_editing.c 2007-09-10 12:26:36 UTC (rev 11992)
@@ -719,8 +719,8 @@
if(!CustomData_has_layer(data, type)) {
if(type == CD_MCOL && (G.f & G_VERTEXPAINT))
G.f &= ~G_VERTEXPAINT; /* get out of vertexpaint mode */
- if(type == CD_MTFACE && (G.f & G_FACESELECT))
- set_faceselect(); /* get out of faceselect mode */
+ /*if(type == CD_MTFACE && (G.f & G_FACESELECT))
+ set_faceselect();*/ /* get out of faceselect mode */
}
/*reconstruct active layer*/
@@ -4378,7 +4378,7 @@
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, G_DRAWFACES, REDRAWVIEW3D, "Draw Faces", 955,88,150,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades");
+ uiDefButBitI(block, TOG, G_DRAWFACES, REDRAWVIEW3D|REDRAWIMAGE, "Draw Faces", 955,88,150,19, &G.f, 0, 0, 0, 0, "Displays all faces as shades");
uiDefButBitI(block, TOG, G_DRAWEDGES, REDRAWVIEW3D, "Draw Edges", 955,66,150,19, &G.f, 0, 0, 0, 0, "Displays selected edges using hilights");
uiDefButBitI(block, TOG, G_DRAWCREASES, REDRAWVIEW3D, "Draw Creases", 955,44,150,19, &G.f, 0, 0, 0, 0, "Displays creases created for subsurf weighting");
uiDefButBitI(block, TOG, G_DRAWSEAMS, REDRAWVIEW3D, "Draw Seams", 955,22,150,19, &G.f, 0, 0, 0, 0, "Displays UV unwrapping seams");
@@ -4838,7 +4838,7 @@
case B_COPY_TF_COL:
case B_COPY_TF_TEX:
me= get_mesh(OBACT);
- activetf= get_active_tface(&activemcol);
+ activetf= get_active_tface(NULL, &activemcol);
if(me && activetf) {
for (a=0, tf=me->mtface, mf=me->mface; a < me->totface; a++, tf++, mf++) {
@@ -4892,7 +4892,7 @@
break;
case B_TFACE_HALO:
- activetf = get_active_tface(NULL);
+ activetf = get_active_tface(NULL, NULL);
if(activetf) {
activetf->mode &= ~TF_BILLBOARD2;
allqueue(REDRAWBUTSEDIT, 0);
@@ -4900,7 +4900,7 @@
break;
case B_TFACE_BILLB:
- activetf = get_active_tface(NULL);
+ activetf = get_active_tface(NULL, NULL);
if(activetf) {
activetf->mode &= ~TF_BILLBOARD;
allqueue(REDRAWBUTSEDIT, 0);
@@ -5272,7 +5272,7 @@
block= uiNewBlock(&curarea->uiblocks, "editing_panel_mesh_texface", UI_EMBOSS, UI_HELV, curarea->win);
if(uiNewPanel(curarea, block, "Texture face", "Editing", 960, 0, 318, 204)==0) return;
- tf = get_active_tface(NULL);
+ tf = get_active_tface(NULL, NULL);
if(tf) {
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, TF_TEX, B_REDR_3D_IMA, "Tex", 600,160,60,19, &tf->mode, 0, 0, 0, 0, "Render face with texture");
@@ -5465,6 +5465,7 @@
if(G.obedit) {
editing_panel_mesh_tools(ob, ob->data);
editing_panel_mesh_tools1(ob, ob->data);
+ editing_panel_mesh_uvautocalculation();
}
else if(G.f & G_SCULPTMODE) {
uiNewPanelTabbed("Multires", "Editing");
@@ -5474,7 +5475,7 @@
} else {
if(G.f & G_FACESELECT) {
editing_panel_mesh_texface();
- editing_panel_mesh_uvautocalculation();
+ editing_panel_mesh_uvautocalculation(); /* draw hidden edge option from this needs to be elsewhere */
}
if(G.f & (G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT) ) {
editing_panel_mesh_paint();
Modified: trunk/blender/source/blender/src/drawimage.c
===================================================================
--- trunk/blender/source/blender/src/drawimage.c 2007-09-10 12:12:38 UTC (rev 11991)
+++ trunk/blender/source/blender/src/drawimage.c 2007-09-10 12:26:36 UTC (rev 11992)
@@ -43,6 +43,7 @@
#include "BLI_arithb.h"
#include "BLI_blenlib.h"
+#include "BLI_editVert.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -242,19 +243,16 @@
void what_image(SpaceImage *sima)
{
MTFace *activetf;
- Mesh *me;
if(sima->mode==SI_TEXTURE) {
/* viewer overrides faceselect */
- if(sima->image && sima->image->source==IMA_SRC_VIEWER);
- else if((G.f & G_FACESELECT)) {
-
+ if(sima->image && sima->image->source==IMA_SRC_VIEWER) {}
+ else if (G.obedit == OBACT) {
sima->image= NULL;
- me= get_mesh(OBACT);
- activetf = get_active_tface(NULL);
+ activetf = get_active_tface(NULL, NULL);
- if(me && me->mtface && activetf && activetf->mode & TF_TEX) {
+ if(activetf && activetf->mode & TF_TEX) {
sima->image= activetf->tpage;
if(sima->flag & SI_EDITTILE);
@@ -267,7 +265,6 @@
}
}
}
-
}
}
@@ -285,22 +282,20 @@
return NULL;
}
-
+extern int EM_texFaceCheck(void); /* from editmesh.c */
/* called to assign images to UV faces */
void image_changed(SpaceImage *sima, int dotile)
{
MTFace *tface;
- MFace *mface;
- Mesh *me;
- int a;
+ EditMesh *em = G.editMesh;
+ EditFace *efa;
if(sima->image==NULL)
sima->flag &= ~SI_DRAWTOOL;
if(sima->mode==SI_TEXTURE) {
- if(G.f & G_FACESELECT) {
-
+ if(EM_texFaceCheck()) {
/* skip assigning these procedural images... */
if(sima->image) {
if(sima->image->type==IMA_TYPE_R_RESULT)
@@ -308,41 +303,38 @@
if(sima->image->type==IMA_TYPE_COMPOSITE)
return;
}
-
- me= get_mesh(OBACT);
- if(me && me->mtface) {
+ /*
+ tface= me->mtface;
+ mface = me->mface;
+ a= me->totface;
+ while(a--) {
+ if(mface->flag & ME_FACE_SEL) {
+ */
+ for (efa= em->faces.first; efa; efa= efa->next) {
+ if (efa->f & SELECT) {
+ tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
- tface= me->mtface;
- mface = me->mface;
- a= me->totface;
- while(a--) {
- if(mface->flag & ME_FACE_SEL) {
-
- if(dotile==2) {
- tface->mode &= ~TF_TILES;
- }
- else {
- tface->tpage= sima->image;
- tface->mode |= TF_TEX;
-
- if(dotile) tface->tile= sima->curtile;
- }
-
- if(sima->image) {
- if(sima->image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
- else tface->mode &= ~TF_TILES;
-
- if(sima->image->id.us==0) id_us_plus(&sima->image->id);
- else id_lib_extern(&sima->image->id);
- }
+ if(dotile==2) {
+ tface->mode &= ~TF_TILES;
}
- tface++;
- mface++;
+ else {
+ tface->tpage= sima->image;
+ tface->mode |= TF_TEX;
+
+ if(dotile) tface->tile= sima->curtile;
+ }
+
+ if(sima->image) {
+ if(sima->image->tpageflag & IMA_TILES) tface->mode |= TF_TILES;
+ else tface->mode &= ~TF_TILES;
+
+ if(sima->image->id.us==0) id_us_plus(&sima->image->id);
+ else id_lib_extern(&sima->image->id);
+ }
}
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list