[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