Revision: 27112
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27112
Author:   blendix
Date:     2010-02-23 20:34:12 +0100 (Tue, 23 Feb 2010)

Log Message:
-----------
Render Branch: quick hack to support 4x4 matrix SVD decomposition
in C, by using the TNT matrix library from the IK solver.

Modified Paths:
--------------
    branches/render25/intern/iksolver/intern/IK_Solver.cpp

Modified: branches/render25/intern/iksolver/intern/IK_Solver.cpp
===================================================================
--- branches/render25/intern/iksolver/intern/IK_Solver.cpp      2010-02-23 
19:32:32 UTC (rev 27111)
+++ branches/render25/intern/iksolver/intern/IK_Solver.cpp      2010-02-23 
19:34:12 UTC (rev 27112)
@@ -377,3 +377,40 @@
        return ((result)? 1: 0);
 }
 
+#include "TNT/cmat.h"
+#include "TNT/svd.h"
+
+extern "C" {
+void TNT_svd(float m[][4], float *w, float u[][4]);
+}
+
+void TNT_svd(float m[][4], float *w, float u[][4])
+{
+       TNT::Matrix<float> M, V, U;
+       TNT::Vector<float> W, W1, W2;
+       int i, j;
+
+       M.newsize(4, 4);
+       V.newsize(4, 4);
+       U.newsize(4, 4);
+       W.newsize(4);
+       W1.newsize(4);
+       W2.newsize(4);
+
+       for(i=0; i<4; i++)
+               for(j=0; j<4; j++)
+                       M[i][j]= m[j][i];
+
+       TNT::SVD(M, V, W, U, W1, W2);
+
+       for(i=0; i<4; i++)
+               w[i]= W[i];
+
+       for(i=0; i<4; i++) {
+               for(j=0; j<4; j++) {
+                       m[i][j]= V[j][i];
+                       u[i][j]= U[j][i];
+               }
+       }
+}
+


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

Reply via email to