Revision: 15738
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15738
Author:   theeth
Date:     2008-07-24 21:12:30 +0200 (Thu, 24 Jul 2008)

Log Message:
-----------
Axial symmetry stability bug fix.

Axial symmetry tagging was depending on the order of the nodes, so it might tag 
left side as right and vice versa depending on the order. Stability test 
ensures the tagging is order independant (what it tags as right and left might 
not be the real right and left, but at least they are consistant between mesh 
graph and armature graph, so it doesn't flip limbs)

Modified Paths:
--------------
    branches/harmonic-skeleton/source/blender/blenlib/intern/graph.c

Modified: branches/harmonic-skeleton/source/blender/blenlib/intern/graph.c
===================================================================
--- branches/harmonic-skeleton/source/blender/blenlib/intern/graph.c    
2008-07-24 18:00:46 UTC (rev 15737)
+++ branches/harmonic-skeleton/source/blender/blenlib/intern/graph.c    
2008-07-24 19:12:30 UTC (rev 15738)
@@ -714,15 +714,28 @@
 {
        float nor[3], vec[3], p[3];
 
-       VecSubf(vec, node1->p, root_node->p);
-       Normalize(vec);
+       VecSubf(p, node1->p, root_node->p);
+       Crossf(nor, p, axis);
+
        VecSubf(p, root_node->p, node2->p);
-       Normalize(p);
-       VecAddf(p, p, vec);
-
        Crossf(vec, p, axis);
+       VecAddf(vec, vec, nor);
+       
        Crossf(nor, vec, axis);
        
+       if (abs(nor[0]) > abs(nor[1]) && abs(nor[0]) > abs(nor[2]) && nor[0] < 
0)
+       {
+               VecMulf(nor, -1);
+       }
+       else if (abs(nor[1]) > abs(nor[0]) && abs(nor[1]) > abs(nor[2]) && 
nor[1] < 0)
+       {
+               VecMulf(nor, -1);
+       }
+       else if (abs(nor[2]) > abs(nor[1]) && abs(nor[2]) > abs(nor[0]) && 
nor[2] < 0)
+       {
+               VecMulf(nor, -1);
+       }
+       
        /* mirror node2 along axis */
        VECCOPY(p, node2->p);
        BLI_mirrorAlongAxis(p, root_node->p, nor);


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

Reply via email to