[Bf-committers] patch for tech mode

Kenneth Styrberg kenneth.styrberg at telia.com
Sun Jan 16 21:49:40 CET 2005


Hi all, I modified the patch so that you can see the edge lengths in 
realtime while moving vertices. This can be activated using 'Draw All 
Lengths' in Mesh Tools 1 panel.

//styken


-------------- next part --------------
Index: source/blender/blenkernel/BKE_global.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/blenkernel/BKE_global.h,v
retrieving revision 1.18
diff -u -r1.18 BKE_global.h
--- source/blender/blenkernel/BKE_global.h	8 Jan 2005 21:16:24 -0000	1.18
+++ source/blender/blenkernel/BKE_global.h	16 Jan 2005 20:29:06 -0000
@@ -178,6 +178,7 @@
 #define G_DRAW_EDGELEN   (1 << 22) 
 #define G_DRAW_FACEAREA (1 << 23)
 #define G_DRAW_EDGEANG  (1 << 24)
+#define G_DRAW_ALLEDGE	(1 << 25)
 
 /* G.fileflags */
 
Index: source/blender/include/BIF_editmesh.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_editmesh.h,v
retrieving revision 1.36
diff -u -r1.36 BIF_editmesh.h
--- source/blender/include/BIF_editmesh.h	24 Nov 2004 16:29:10 -0000	1.36
+++ source/blender/include/BIF_editmesh.h	16 Jan 2005 00:00:46 -0000
@@ -168,6 +168,7 @@
 extern void fill_mesh(void);
 extern void bevel_menu();
 void edge_rotate_selected(void);
+extern float get_meas_scale(void);
  
 #endif
 
Index: source/blender/src/buttons_editing.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/buttons_editing.c,v
retrieving revision 1.90
diff -u -r1.90 buttons_editing.c
--- source/blender/src/buttons_editing.c	12 Jan 2005 22:28:12 -0000	1.90
+++ source/blender/src/buttons_editing.c	16 Jan 2005 20:39:34 -0000
@@ -159,7 +159,7 @@
 static float extr_offs= 1.0;
 static float editbutweight=1.0;
 short editbutflag= 1;
-float doublimit= 0.001, editbutvweight=1, editbutsize=0.1;
+float doublimit= 0.001, editbutvweight=1, editbutsize=0.1, meas_scale = 1.0; 
 float uv_calc_radius= 1.0, uv_calc_cubesize= 1.0;
 short uv_calc_mapdir= 1, uv_calc_mapalign= 1, facesel_draw_edges= 0;
 
@@ -384,6 +384,10 @@
 	}
 }
 
+float get_meas_scale(void) {
+	return meas_scale;
+}
+
 /* *************** */
 
 void do_common_editbuts(unsigned short event) // old name, is a mix of object and editing events.... 
@@ -2133,8 +2137,10 @@
 	/* Measurement drawing options */
 	uiBlockBeginAlign(block);
 	uiDefButI(block, TOG|BIT|22, REDRAWVIEW3D, "Edge Length",	1125,131,150,19, &G.f, 0, 0, 0, 0, "Displays selected edge lengths");
-	uiDefButI(block, TOG|BIT|24, REDRAWVIEW3D, "Edge Angles",	1125,110,150,19,  &G.f, 0, 0, 0, 0, "Displays the angles in the selected edges in degrees");
-	uiDefButI(block, TOG|BIT|23, REDRAWVIEW3D, "Face Area",		1125,88,150,19, &G.f, 0, 0, 0, 0, "Displays the area of selected faces");
+	uiDefButI(block, TOG|BIT|25, REDRAWVIEW3D, "Draw All Lengths",1125,110,150,19, &G.f, 0, 0, 0, 0, "Displays lengths for all edges");
+	uiDefButI(block, TOG|BIT|24, REDRAWVIEW3D, "Edge Angles",	1125,88,150,19,  &G.f, 0, 0, 0, 0, "Displays the angles in the selected edges in degrees");
+	uiDefButI(block, TOG|BIT|23, REDRAWVIEW3D, "Face Area",		1125,66,150,19, &G.f, 0, 0, 0, 0, "Displays the area of selected faces");
+	uiDefButF(block, NUM,        REDRAWVIEW3D, "Scale:",		1125,44,150,19, &meas_scale, 0.01, 100.0, 100, 0, "Sets the scale for displayed length and areas");
 	uiBlockEndAlign(block);
 
 }
Index: source/blender/src/drawobject.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/drawobject.c,v
retrieving revision 1.142
diff -u -r1.142 drawobject.c
--- source/blender/src/drawobject.c	12 Jan 2005 22:28:12 -0000	1.142
+++ source/blender/src/drawobject.c	16 Jan 2005 20:46:02 -0000
@@ -2729,7 +2729,7 @@
 	EditMesh *em = G.editMesh;
 	EditEdge *eed;
 	EditFace *efa;
-	float *v1, *v2, *v3, *v4, fvec[3];
+	float *v1, *v2, *v3, *v4, fvec[3], length = 0.0f;
 	char val[32]; /* Stores the measurement display text here */
 	float area, col[3]; /* area of the face,  colour of the text to draw */
 	
@@ -2748,14 +2748,25 @@
 		
 		/* Now Draw distance */      
 		for(eed= em->edges.first; eed; eed= eed->next) {
-			if(eed->f & SELECT) {
+			if(G.f & G_DRAW_ALLEDGE) {
 				v1= eed->v1->co;
 				v2= eed->v2->co;
 				
 				glRasterPos3f( 0.5*(v1[0]+v2[0]),  0.5*(v1[1]+v2[1]),  0.5*(v1[2]+v2[2]));
-				sprintf(val,"%.3f", VecLenf(v1, v2));
+				length = VecLenf(v1, v2) * get_meas_scale();
+				sprintf(val,"%.3f", length);
 				BMF_DrawString( G.fonts, val);
+			} else {
+				if(eed->f & SELECT) {
+					v1= eed->v1->co;
+					v2= eed->v2->co;
+					glRasterPos3f( 0.5*(v1[0]+v2[0]),  0.5*(v1[1]+v2[1]),  0.5*(v1[2]+v2[2]));
+					length = VecLenf(v1, v2) * get_meas_scale();
+					sprintf(val,"%.3f", length);
+					BMF_DrawString( G.fonts, val);
+				}
 			}
+
 		}
 	}
 
@@ -2774,7 +2785,7 @@
 					area=  AreaQ3Dfl( efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co);
 				else
 					area = AreaT3Dfl( efa->v1->co, efa->v2->co, efa->v3->co);
-
+				area *= (get_meas_scale() * get_meas_scale());
 				sprintf(val,"%.3f", area);
 				glRasterPos3fv(efa->cent);
 				BMF_DrawString( G.fonts, val);


More information about the Bf-committers mailing list