[Bf-committers] New Angle Code
Austin Benesh
bfdeveloper at gmail.com
Fri Mar 11 04:54:25 CET 2005
Skipped content of type multipart/alternative-------------- next part --------------
Index: drawobject.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/drawobject.c,v
retrieving revision 1.146
diff -u -w -b -r1.146 drawobject.c
--- drawobject.c 9 Mar 2005 19:45:56 -0000 1.146
+++ drawobject.c 11 Mar 2005 03:48:06 -0000
@@ -2730,7 +2730,7 @@
static void draw_measure_stats(void)
{
EditMesh *em = G.editMesh;
- EditEdge *eed;
+ EditEdge *eed, *eed2;
EditFace *efa;
float *v1, *v2, *v3, *v4, fvec[3];
char val[32]; /* Stores the measurement display text here */
@@ -2787,69 +2787,61 @@
/* Draw Edge Angles */
if(G.f & G_DRAW_EDGEANG) {
- EditEdge *e1, *e2, *e3, *e4;
BIF_GetThemeColor3fv(TH_TEXT, col);
/* make color a bit more blue */
if(col[2]> 0.5) {col[0]*=0.7; col[1]*= 0.7;}
else col[2]= col[2]*0.7 + 0.3;
glColor3fv(col);
-
- for(efa= em->faces.first; efa; efa= efa->next) {
- v1= efa->v1->co;
- v2= efa->v2->co;
- v3= efa->v3->co;
- if(efa->v4) v4= efa->v4->co; else v4= v3;
- e1= efa->e1;
- e2= efa->e2;
- e3= efa->e3;
- if(efa->e4) e4= efa->e4; else e4= e3;
-
- /* Calculate the angles */
-
- if(e4->f & e1->f & SELECT ) {
- /* Vec 1 */
- sprintf(val,"%.3f", VecAngle3(v4, v1, v2));
- fvec[0]= 0.2*efa->cent[0] + 0.8*v1[0];
- fvec[1]= 0.2*efa->cent[1] + 0.8*v1[1];
- fvec[2]= 0.2*efa->cent[2] + 0.8*v1[2];
+ /* Revised method written by Austin Benesh 03/10/05 */
+ for(eed=em->edges.first;eed;eed=eed->next)
+ {
+ // this causes the angle values to be double drawn...
+ for(eed2=em->edges.first;eed2;eed2=eed2->next)
+ {
+
+ if((eed->f & eed2->f & SELECT)&&(eed!=eed2))
+ {
+
+ if(eed2->v1==eed->v1)
+ {
+ sprintf(val,"%.3f", VecAngle3(eed2->v2->co, eed2->v1->co, eed->v2->co));
+ fvec[0]=(eed->v2->co[0]+eed2->v2->co[0])/2;
+ fvec[1]=(eed->v2->co[1]+eed2->v2->co[1])/2;
+ fvec[2]=(eed->v2->co[2]+eed2->v2->co[2])/2;
glRasterPos3f(fvec[0], fvec[1], fvec[2]);
BMF_DrawString( G.fonts, val);
}
- if(e1->f & e2->f & SELECT ) {
- /* Vec 2 */
- sprintf(val,"%.3f", VecAngle3(v1, v2, v3));
- fvec[0]= 0.2*efa->cent[0] + 0.8*v2[0];
- fvec[1]= 0.2*efa->cent[1] + 0.8*v2[1];
- fvec[2]= 0.2*efa->cent[2] + 0.8*v2[2];
+ if(eed2->v2==eed->v2)
+ {
+ sprintf(val,"%.3f", VecAngle3(eed2->v1->co, eed2->v2->co, eed->v1->co));
+ fvec[0]=(eed->v1->co[0]+eed2->v1->co[0])/2;
+ fvec[1]=(eed->v1->co[1]+eed2->v1->co[1])/2;
+ fvec[2]=(eed->v1->co[2]+eed2->v1->co[2])/2;
glRasterPos3f(fvec[0], fvec[1], fvec[2]);
BMF_DrawString( G.fonts, val);
}
- if(e2->f & e3->f & SELECT ) {
- /* Vec 3 */
- if(efa->v4)
- sprintf(val,"%.3f", VecAngle3(v2, v3, v4));
- else
- sprintf(val,"%.3f", VecAngle3(v2, v3, v1));
- fvec[0]= 0.2*efa->cent[0] + 0.8*v3[0];
- fvec[1]= 0.2*efa->cent[1] + 0.8*v3[1];
- fvec[2]= 0.2*efa->cent[2] + 0.8*v3[2];
+ if(eed2->v2==eed->v1)
+ {
+ sprintf(val,"%.3f", VecAngle3(eed2->v1->co, eed2->v2->co, eed->v2->co));
+ fvec[0]=(eed->v2->co[0]+eed2->v1->co[0])/2;
+ fvec[1]=(eed->v2->co[1]+eed2->v1->co[1])/2;
+ fvec[2]=(eed->v2->co[2]+eed2->v1->co[2])/2;
glRasterPos3f(fvec[0], fvec[1], fvec[2]);
BMF_DrawString( G.fonts, val);
}
- /* Vec 4 */
- if(efa->v4) {
- if(e3->f & e4->f & SELECT ) {
- sprintf(val,"%.3f", VecAngle3(v3, v4, v1));
-
- fvec[0]= 0.2*efa->cent[0] + 0.8*v4[0];
- fvec[1]= 0.2*efa->cent[1] + 0.8*v4[1];
- fvec[2]= 0.2*efa->cent[2] + 0.8*v4[2];
+ if(eed2->v1==eed->v2)
+ {
+ sprintf(val,"%.3f", VecAngle3(eed2->v2->co, eed2->v1->co, eed->v1->co));
+ fvec[0]=(eed->v1->co[0]+eed2->v2->co[0])/2;
+ fvec[1]=(eed->v1->co[1]+eed2->v2->co[1])/2;
+ fvec[2]=(eed->v1->co[2]+eed2->v2->co[2])/2;
glRasterPos3f(fvec[0], fvec[1], fvec[2]);
BMF_DrawString( G.fonts, val);
}
}
}
+ }
}
if(G.zbuf) {
More information about the Bf-committers
mailing list