[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