Revision: 18421
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18421
Author:   theeth
Date:     2009-01-08 18:12:50 +0100 (Thu, 08 Jan 2009)

Log Message:
-----------
2.5

Transform editbones

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
    branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
    
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c

Modified: 
branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c  
2009-01-08 16:52:30 UTC (rev 18420)
+++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c  
2009-01-08 17:12:50 UTC (rev 18421)
@@ -1830,7 +1830,7 @@
 /* adjust bone roll to align Z axis with vector
  * vec is in local space and is normalized
  */
-float rollBoneToVector(EditBone *bone, float new_up_axis[3])
+float ED_rollBoneToVector(EditBone *bone, float new_up_axis[3])
 {
        float mat[3][3], nor[3], up_axis[3], vec[3];
        float roll;

Modified: 
branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_armature.h    
2009-01-08 16:52:30 UTC (rev 18420)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_armature.h    
2009-01-08 17:12:50 UTC (rev 18421)
@@ -92,7 +92,10 @@
                                                        short hits, short 
extend);
 void mouse_armature(struct bContext *C, short mval[2], int extend);
 
+float ED_rollBoneToVector(EditBone *bone, float new_up_axis[3]);
 
+void transform_armature_mirror_update(struct Object *obedit);
+
 /* poseobject.c */
 void ED_armature_exit_posemode(struct Base *base);
 void ED_armature_enter_posemode(struct Base *base);

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-01-08 16:52:30 UTC (rev 18420)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-01-08 17:12:50 UTC (rev 18421)
@@ -1021,25 +1021,29 @@
 
 static void createTransArmatureVerts(bContext *C, TransInfo *t)
 {
-       // TRANSFORM_FIX_ME
-#if 0
        EditBone *ebo;
        bArmature *arm= t->obedit->data;
+       ListBase *edbo = arm->edbo;
        TransData *td;
        float mtx[3][3], smtx[3][3], delta[3], bonemat[3][3];
 
        t->total = 0;
-       for (ebo=G.edbo.first;ebo;ebo=ebo->next) {
-               if(ebo->layer & arm->layer) {
-                       if (t->mode==TFM_BONESIZE) {
+       for (ebo = edbo->first; ebo; ebo = ebo->next)
+       {
+               if(ebo->layer & arm->layer)
+               {
+                       if (t->mode==TFM_BONESIZE)
+                       {
                                if (ebo->flag & BONE_SELECTED)
                                        t->total++;
                        }
-                       else if (t->mode==TFM_BONE_ROLL) {
+                       else if (t->mode==TFM_BONE_ROLL)
+                       {
                                if (ebo->flag & BONE_SELECTED)
                                        t->total++;
                        }
-                       else {
+                       else
+                       {
                                if (ebo->flag & BONE_TIPSEL)
                                        t->total++;
                                if (ebo->flag & BONE_ROOTSEL)
@@ -1055,13 +1059,15 @@
 
     td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransEditBone");
        
-       for (ebo=G.edbo.first;ebo;ebo=ebo->next){
-               ebo->oldlength= ebo->length;    // length==0.0 on extrude, used 
for scaling radius of bone points
+       for (ebo = edbo->first; ebo; ebo = ebo->next)
+       {
+               ebo->oldlength = ebo->length;   // length==0.0 on extrude, used 
for scaling radius of bone points
                
                if(ebo->layer & arm->layer) {
-                       if (t->mode==TFM_BONE_ENVELOPE) {
-                               
-                               if (ebo->flag & BONE_ROOTSEL){
+                       if (t->mode==TFM_BONE_ENVELOPE)
+                       {
+                               if (ebo->flag & BONE_ROOTSEL)
+                               {
                                        td->val= &ebo->rad_head;
                                        td->ival= *td->val;
                                        
@@ -1077,7 +1083,8 @@
                                        
                                        td++;
                                }
-                               if (ebo->flag & BONE_TIPSEL){
+                               if (ebo->flag & BONE_TIPSEL)
+                               {
                                        td->val= &ebo->rad_tail;
                                        td->ival= *td->val;
                                        VECCOPY (td->center, ebo->tail);
@@ -1094,14 +1101,17 @@
                                }
                                
                        }
-                       else if (t->mode==TFM_BONESIZE) {
+                       else if (t->mode==TFM_BONESIZE)
+                       {
                                if (ebo->flag & BONE_SELECTED) {
-                                       if(arm->drawtype==ARM_ENVELOPE) {
+                                       if(arm->drawtype==ARM_ENVELOPE)
+                                       {
                                                td->loc= NULL;
                                                td->val= &ebo->dist;
                                                td->ival= ebo->dist;
                                        }
-                                       else {
+                                       else
+                                       {
                                                // abusive storage of scale in 
the loc pointer :)
                                                td->loc= &ebo->xwidth;
                                                VECCOPY (td->iloc, td->loc);
@@ -1125,8 +1135,10 @@
                                        td++;
                                }
                        }
-                       else if (t->mode==TFM_BONE_ROLL) {
-                               if (ebo->flag & BONE_SELECTED) {
+                       else if (t->mode==TFM_BONE_ROLL)
+                       {
+                               if (ebo->flag & BONE_SELECTED)
+                               {
                                        td->loc= NULL;
                                        td->val= &(ebo->roll);
                                        td->ival= ebo->roll;
@@ -1140,8 +1152,10 @@
                                        td++;
                                }
                        }
-                       else {
-                               if (ebo->flag & BONE_TIPSEL){
+                       else
+                       {
+                               if (ebo->flag & BONE_TIPSEL)
+                               {
                                        VECCOPY (td->iloc, ebo->tail);
                                        VECCOPY (td->center, td->iloc);
                                        td->loc= ebo->tail;
@@ -1166,7 +1180,8 @@
 
                                        td++;
                                }
-                               if (ebo->flag & BONE_ROOTSEL){
+                               if (ebo->flag & BONE_ROOTSEL)
+                               {
                                        VECCOPY (td->iloc, ebo->head);
                                        VECCOPY (td->center, td->iloc);
                                        td->loc= ebo->head;
@@ -1191,7 +1206,6 @@
                        }
                }
        }
-#endif
 }
 
 /* ********************* meta elements ********* */

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
   2009-01-08 16:52:30 UTC (rev 18420)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
   2009-01-08 17:12:50 UTC (rev 18421)
@@ -421,30 +421,7 @@
                }
        }
        else if (t->obedit) {
-               if (t->obedit->type == OB_MESH) {
-                       if(t->spacetype==SPACE_IMAGE) {
-                               flushTransUVs(t);
-                               if (G.sima->flag & SI_LIVE_UNWRAP)
-                                       unwrap_lscm_live_re_solve();
-                       } else {
-                               EditMesh *em = ((Mesh 
*)t->obedit->data)->edit_mesh
-                               /* mirror modifier clipping? */
-                               if(t->state != TRANS_CANCEL) {
-                                       if ((G.qual & LR_CTRLKEY)==0) {
-                                               /* Only retopo if not snapping, 
Note, this is the only case of G.qual being used, but we have no T_SHIFT_MOD - 
Campbell */
-                                               retopo_do_all();
-                                       }
-                                       clipMirrorModifier(t, t->obedit);
-                               }
-                               if((t->options & CTX_NO_MIRROR) == 0 && 
(G.scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
-                                       editmesh_apply_to_mirror(t);
-                               
-                               DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
-                               
-                               recalc_editnormals(em);
-                       }
-               }
-               else if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
+               if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
                        Nurb *nu= editNurb.first;
                        DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
                        
@@ -463,14 +440,68 @@
                                retopo_do_all();
                        }
                }
-               else if(t->obedit->type==OB_ARMATURE){   /* no recalc flag, 
does pose */
+               else if(t->obedit->type==OB_LATTICE) {
+                       DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
+                       
+                       if(editLatt->flag & LT_OUTSIDE) 
outside_lattice(editLatt);
+               }
+               else {
+                       DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
+               }
+       }
+       else if( (t->flag & T_POSE) && t->poseobj) {
+               Object *ob= t->poseobj;
+               bArmature *arm= ob->data;
+               
+               /* old optimize trick... this enforces to bypass the depgraph */
+               if (!(arm->flag & ARM_DELAYDEFORM)) {
+                       DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);  
/* sets recalc flags */
+               }
+               else
+                       where_is_pose(ob);
+       }
+       else if(G.f & G_PARTICLEEDIT) {
+               flushTransParticles(t);
+       }
+#endif
+       if (t->spacetype==SPACE_NODE) {
+               flushTransNodes(t);
+       }
+       else if (t->obedit) {
+               if (t->obedit->type == OB_MESH) {
+                       if(t->spacetype==SPACE_IMAGE) {
+                               flushTransUVs(t);
+                               /* TRANSFORM_FIX_ME */
+//                             if (G.sima->flag & SI_LIVE_UNWRAP)
+//                                     unwrap_lscm_live_re_solve();
+                       } else {
+                               EditMesh *em = 
((Mesh*)t->obedit->data)->edit_mesh;
+                               /* mirror modifier clipping? */
+                               if(t->state != TRANS_CANCEL) {
+                                       /* TRANSFORM_FIX_ME */
+//                                     if ((G.qual & LR_CTRLKEY)==0) {
+//                                             /* Only retopo if not snapping, 
Note, this is the only case of G.qual being used, but we have no T_SHIFT_MOD - 
Campbell */
+//                                             retopo_do_all();
+//                                     }
+                                       clipMirrorModifier(t, t->obedit);
+                               }
+                               if((t->options & CTX_NO_MIRROR) == 0 && 
(t->scene->toolsettings->editbutflag & B_MESH_X_MIRROR))
+                                       editmesh_apply_to_mirror(t);
+                               
+                               DAG_object_flush_update(t->scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
+                               
+                               recalc_editnormals(em);
+                       }
+               }
+               else if(t->obedit->type==OB_ARMATURE) { /* no recalc flag, does 
pose */
                        bArmature *arm= t->obedit->data;
+                       ListBase *edbo = arm->edbo;
                        EditBone *ebo;
                        TransData *td = t->data;
                        int i;
                        
                        /* Ensure all bones are correctly adjusted */
-                       for (ebo=G.edbo.first; ebo; ebo=ebo->next){
+                       for (ebo = edbo->first; ebo; ebo = ebo->next){
                                
                                if ((ebo->flag & BONE_CONNECTED) && 
ebo->parent){
                                        /* If this bone has a parent tip that 
has been moved */
@@ -531,69 +562,16 @@
                                                        Mat3MulVecfl(t->mat, 
up_axis);
                                                }
                                                
-                                               ebo->roll = 
rollBoneToVector(ebo, up_axis);
+                                               ebo->roll = 
ED_rollBoneToVector(ebo, up_axis);
                                        }
                                }
                        }
                        
                        if(arm->flag & ARM_MIRROR_EDIT) 
-                               transform_armature_mirror_update();
+                               transform_armature_mirror_update(t->obedit);
                        
                }
-               else if(t->obedit->type==OB_LATTICE) {
-                       DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
-                       
-                       if(editLatt->flag & LT_OUTSIDE) 
outside_lattice(editLatt);
-               }
-               else {
-                       DAG_object_flush_update(G.scene, t->obedit, 
OB_RECALC_DATA);  /* sets recalc flags */
-               }
        }
-       else if( (t->flag & T_POSE) && t->poseobj) {
-               Object *ob= t->poseobj;
-               bArmature *arm= ob->data;
-               
-               /* old optimize trick... this enforces to bypass the depgraph */
-               if (!(arm->flag & ARM_DELAYDEFORM)) {
-                       DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);  
/* sets recalc flags */
-               }
-               else
-                       where_is_pose(ob);
-       }
-       else if(G.f & G_PARTICLEEDIT) {
-               flushTransParticles(t);
-       }
-#endif
-       if (t->spacetype==SPACE_NODE) {
-               flushTransNodes(t);
-       }
-       else if (t->obedit) {
-               if (t->obedit->type == OB_MESH) {
-                       if(t->spacetype==SPACE_IMAGE) {
-                               flushTransUVs(t);
-                               /* TRANSFORM_FIX_ME */
-//                             if (G.sima->flag & SI_LIVE_UNWRAP)
-//                                     unwrap_lscm_live_re_solve();
-                       } else {
-                               EditMesh *em = 
((Mesh*)t->obedit->data)->edit_mesh;
-                               /* mirror modifier clipping? */
-                               if(t->state != TRANS_CANCEL) {
-                                       /* TRANSFORM_FIX_ME */
-//                                     if ((G.qual & LR_CTRLKEY)==0) {
-//                                             /* Only retopo if not snapping, 
Note, this is the only case of G.qual being used, but we have no T_SHIFT_MOD - 
Campbell */
-//                                             retopo_do_all();
-//                                     }

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to