add note to avoid confusion with angle_v3v3v3, also minor change with angle compariso...
authorCampbell Barton <ideasman42@gmail.com>
Fri, 17 Feb 2012 17:47:10 +0000 (17:47 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 17 Feb 2012 17:47:10 +0000 (17:47 +0000)
source/blender/blenlib/intern/math_vector.c
source/blender/editors/armature/meshlaplacian.c

index 47deb705def0de61f44895e947c011794a6e7555..ce9896b99ccb81397d1b506a45aac881c7aa2b3f 100644 (file)
@@ -112,8 +112,12 @@ void mid_v3_v3v3(float v[3], const float v1[3], const float v2[3])
 /********************************** Angles ***********************************/
 
 /* Return the angle in radians between vecs 1-2 and 2-3 in radians
-   If v1 is a shoulder, v2 is the elbow and v3 is the hand,
-   this would return the angle at the elbow */
+ * If v1 is a shoulder, v2 is the elbow and v3 is the hand,
+ * this would return the angle at the elbow.
+ *
+ * note that when v1/v2/v3 represent 3 points along a straight line
+ * that the angle returned will be pi (180deg), rather then 0.0
+ */
 float angle_v3v3v3(const float v1[3], const float v2[3], const float v3[3])
 {
        float vec1[3], vec2[3];
index 319b2c755b19ff0481efa42a08f2531600683e7f..005f5f6da95c64e3b515e04131fc15a80c4b0222 100644 (file)
@@ -181,9 +181,9 @@ static void laplacian_triangle_area(LaplacianSystem *sys, int i1, int i2, int i3
        t2= cotan_weight(v2, v3, v1);
        t3= cotan_weight(v3, v1, v2);
 
-       if(RAD2DEGF(angle_v3v3v3(v2, v1, v3)) > 90) obtuse= 1;
-       else if(RAD2DEGF(angle_v3v3v3(v1, v2, v3)) > 90) obtuse= 2;
-       else if(RAD2DEGF(angle_v3v3v3(v1, v3, v2)) > 90) obtuse= 3;
+       if     (angle_v3v3v3(v2, v1, v3) > DEG2RADF(90.0f)) obtuse= 1;
+       else if(angle_v3v3v3(v1, v2, v3) > DEG2RADF(90.0f)) obtuse= 2;
+       else if(angle_v3v3v3(v1, v3, v2) > DEG2RADF(90.0f)) obtuse= 3;
 
        if (obtuse > 0) {
                area= area_tri_v3(v1, v2, v3);