[Bf-committers] patch for tech mode
Kenneth Styrberg
kenneth.styrberg at telia.com
Mon Jan 17 22:43:53 CET 2005
Ok, I wipped up a patch that draws all edges that changes, a new button
'Modified' is added in Mesh Tools 1. I left the 'All' button for all
edge lenghts for now.
I also upped the scale range from 0.001 to 1000.0.
enjoy!
//styken
-------------- next part --------------
? source/blender/makesdna/intern/dna.c
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 17 Jan 2005 20:48:56 -0000
@@ -178,6 +178,8 @@
#define G_DRAW_EDGELEN (1 << 22)
#define G_DRAW_FACEAREA (1 << 23)
#define G_DRAW_EDGEANG (1 << 24)
+#define G_DRAW_ALLEDGE (1 << 25)
+#define G_DRAW_MODEDGE (1 << 26)
/* 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 17 Jan 2005 21:35:33 -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,11 @@
/* 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, "All", 1125,110,75,19, &G.f, 0, 0, 0, 0, "Displays lengths for all edges");
+ uiDefButI(block, TOG|BIT|26, REDRAWVIEW3D, "Modified", 1200,110,75,19, &G.f, 0, 0, 0, 0, "Displays lengths for moving 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.001, 1000.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 17 Jan 2005 21:39:42 -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,12 +2748,29 @@
/* Now Draw distance */
for(eed= em->edges.first; eed; eed= eed->next) {
- if(eed->f & SELECT) {
+ if(G.f & G_DRAW_ALLEDGE) { //check if Draw all edge lengths is selected
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(G.f & G_DRAW_MODEDGE) {
+ //try to find all edges that is selected!
+ if(eed->v1->f & SELECT || eed->v2->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);
+ }
+ } else if(eed->f & SELECT) { //check if edge is SELECTed{
+ 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 +2791,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