Revision: 23149
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23149
Author:   campbellbarton
Date:     2009-09-12 15:25:38 +0200 (Sat, 12 Sep 2009)

Log Message:
-----------
simple error in recent arithb.c commit, have Mathutils.RotationMatrix use 
AxisAngleToMat3

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/arithb.c
    trunk/blender/source/blender/python/generic/Mathutils.c

Modified: trunk/blender/source/blender/blenlib/intern/arithb.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/arithb.c        2009-09-12 
12:59:33 UTC (rev 23148)
+++ trunk/blender/source/blender/blenlib/intern/arithb.c        2009-09-12 
13:25:38 UTC (rev 23149)
@@ -3369,7 +3369,7 @@
 {
        float tmat[3][3];
        
-       AxisAngleToMat3(axis, angle, mat);
+       AxisAngleToMat3(axis, angle, tmat);
        Mat4One(mat);
        Mat4CpyMat3(mat, tmat);
 }

Modified: trunk/blender/source/blender/python/generic/Mathutils.c
===================================================================
--- trunk/blender/source/blender/python/generic/Mathutils.c     2009-09-12 
12:59:33 UTC (rev 23148)
+++ trunk/blender/source/blender/python/generic/Mathutils.c     2009-09-12 
13:25:38 UTC (rev 23149)
@@ -353,7 +353,7 @@
        VectorObject *vec = NULL;
        char *axis = NULL;
        int matSize;
-       float angle = 0.0f, norm = 0.0f, cosAngle = 0.0f, sinAngle = 0.0f;
+       float angle = 0.0f;
        float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
                0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
 
@@ -437,40 +437,8 @@
                mat[8] = 1.0f;
        } else if((strcmp(axis, "r") == 0) || (strcmp(axis, "R") == 0)) {
                //arbitrary rotation
-               //normalize arbitrary axis
-               norm = (float) sqrt(vec->vec[0] * vec->vec[0] +
-                                      vec->vec[1] * vec->vec[1] +
-                                      vec->vec[2] * vec->vec[2]);
-               vec->vec[0] /= norm;
-               vec->vec[1] /= norm;
-               vec->vec[2] /= norm;
-               
-               if (isnan(vec->vec[0]) || isnan(vec->vec[1]) || 
isnan(vec->vec[2])) {
-                       /* zero length vector, return an identity matrix, could 
also return an error */
-                       mat[0]= mat[4] = mat[8] = 1.0f;
-               } else {        
-                       /* create matrix */
-                       cosAngle = (float) cos(angle);
-                       sinAngle = (float) sin(angle);
-                       mat[0] = ((vec->vec[0] * vec->vec[0]) * (1 - cosAngle)) 
+
-                               cosAngle;
-                       mat[1] = ((vec->vec[0] * vec->vec[1]) * (1 - cosAngle)) 
+
-                               (vec->vec[2] * sinAngle);
-                       mat[2] = ((vec->vec[0] * vec->vec[2]) * (1 - cosAngle)) 
-
-                               (vec->vec[1] * sinAngle);
-                       mat[3] = ((vec->vec[0] * vec->vec[1]) * (1 - cosAngle)) 
-
-                               (vec->vec[2] * sinAngle);
-                       mat[4] = ((vec->vec[1] * vec->vec[1]) * (1 - cosAngle)) 
+
-                               cosAngle;
-                       mat[5] = ((vec->vec[1] * vec->vec[2]) * (1 - cosAngle)) 
+
-                               (vec->vec[0] * sinAngle);
-                       mat[6] = ((vec->vec[0] * vec->vec[2]) * (1 - cosAngle)) 
+
-                               (vec->vec[1] * sinAngle);
-                       mat[7] = ((vec->vec[1] * vec->vec[2]) * (1 - cosAngle)) 
-
-                               (vec->vec[0] * sinAngle);
-                       mat[8] = ((vec->vec[2] * vec->vec[2]) * (1 - cosAngle)) 
+
-                               cosAngle;
-               }
+               AxisAngleToMat3(vec->vec, angle, (float *)mat);
+
        } else {
                PyErr_SetString(PyExc_AttributeError, 
"Mathutils.RotationMatrix(): unrecognizable axis of rotation type - expected 
x,y,z or r\n");
                return NULL;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to