[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