Revision: 18043
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18043
Author:   ton
Date:     2008-12-24 12:08:15 +0100 (Wed, 24 Dec 2008)

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

Removed global "workob" from BKE, should now by passed on as an arg.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_action.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_object.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/action.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/constraint.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_action.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_action.h  
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_action.h  
2008-12-24 11:08:15 UTC (rev 18043)
@@ -133,7 +133,7 @@
 /**
  * Get the effects of the given action using a workob 
  */
-void what_does_obaction(struct Object *ob, struct bAction *act, float cframe);
+void what_does_obaction(struct Object *ob, struct Object *workob, struct 
bAction *act, float cframe);
 
 /**
  * Iterate through the action channels of the action

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_object.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_object.h  
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_object.h  
2008-12-24 11:08:15 UTC (rev 18043)
@@ -45,7 +45,9 @@
 struct Group;
 struct bAction;
 
-void clear_workob(void);
+void clear_workob(struct Object *workob);
+void what_does_parent(struct Object *ob, struct Object *workob);
+
 void copy_baseflags(void);
 void copy_objectflags(void);
 struct SoftBody *copy_softbody(struct SoftBody *sb);
@@ -104,8 +106,6 @@
 void where_is_object(struct Object *ob);
 void where_is_object_simul(struct Object *ob);
 
-void what_does_parent(struct Object *ob);
-
 struct BoundBox *unit_boundbox(void);
 void boundbox_set_from_min_max(struct BoundBox *bb, float min[3], float 
max[3]);
 struct BoundBox *object_get_boundbox(struct Object *ob);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/action.c       
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/action.c       
2008-12-24 11:08:15 UTC (rev 18043)
@@ -1225,35 +1225,35 @@
 /* For the calculation of the effects of an action at the given frame on an 
object 
  * This is currently only used for the action constraint 
  */
-void what_does_obaction (Object *ob, bAction *act, float cframe)
+void what_does_obaction (Object *ob, Object *workob, bAction *act, float 
cframe)
 {
        ListBase tchanbase= {NULL, NULL};
        
-       clear_workob();
-       Mat4CpyMat4(workob.obmat, ob->obmat);
-       Mat4CpyMat4(workob.parentinv, ob->parentinv);
-       Mat4CpyMat4(workob.constinv, ob->constinv);
-       workob.parent= ob->parent;
-       workob.track= ob->track;
+       clear_workob(workob);
+       Mat4CpyMat4(workob->obmat, ob->obmat);
+       Mat4CpyMat4(workob->parentinv, ob->parentinv);
+       Mat4CpyMat4(workob->constinv, ob->constinv);
+       workob->parent= ob->parent;
+       workob->track= ob->track;
 
-       workob.trackflag= ob->trackflag;
-       workob.upflag= ob->upflag;
+       workob->trackflag= ob->trackflag;
+       workob->upflag= ob->upflag;
        
-       workob.partype= ob->partype;
-       workob.par1= ob->par1;
-       workob.par2= ob->par2;
-       workob.par3= ob->par3;
+       workob->partype= ob->partype;
+       workob->par1= ob->par1;
+       workob->par2= ob->par2;
+       workob->par3= ob->par3;
 
-       workob.constraints.first = ob->constraints.first;
-       workob.constraints.last = ob->constraints.last;
+       workob->constraints.first = ob->constraints.first;
+       workob->constraints.last = ob->constraints.last;
 
-       strcpy(workob.parsubstr, ob->parsubstr);
-       strcpy(workob.id.name, ob->id.name);
+       strcpy(workob->parsubstr, ob->parsubstr);
+       strcpy(workob->id.name, ob->id.name);
        
        /* extract_ipochannels_from_action needs id's! */
-       workob.action= act;
+       workob->action= act;
        
-       extract_ipochannels_from_action(&tchanbase, &workob.id, act, "Object", 
bsystem_time(&workob, cframe, 0.0));
+       extract_ipochannels_from_action(&tchanbase, &workob->id, act, "Object", 
bsystem_time(workob, cframe, 0.0));
        
        if (tchanbase.first) {
                execute_ipochannels(&tchanbase);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c      
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c      
2008-12-24 11:08:15 UTC (rev 18043)
@@ -213,8 +213,6 @@
        G.windowstate = G_WINDOWSTATE_USERDEF;
 #endif
 
-       clear_workob(); /* object.c */
-
        G.charstart = 0x0000;
        G.charmin = 0x0000;
        G.charmax = 0xffff;

Modified: 
branches/blender2.5/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/constraint.c   
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/constraint.c   
2008-12-24 11:08:15 UTC (rev 18043)
@@ -2046,8 +2046,9 @@
                        free_pose(pose);
                }
                else if (cob->type == CONSTRAINT_OBTYPE_OBJECT) {
+                       Object workob;
                        /* evaluate using workob */
-                       what_does_obaction(cob->ob, data->act, t);
+                       what_does_obaction(cob->ob, &workob, data->act, t);
                        object_to_mat4(&workob, ct->matrix);
                }
                else {

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/object.c       
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/object.c       
2008-12-24 11:08:15 UTC (rev 18043)
@@ -120,13 +120,12 @@
 static void solve_parenting (Object *ob, Object *par, float obmat[][4], float 
slowmat[][4], int simul);
 
 float originmat[3][3]; /* after where_is_object(), can be used in other 
functions (bad!) */
-Object workob;
 
-void clear_workob(void)
+void clear_workob(Object *workob)
 {
-       memset(&workob, 0, sizeof(Object));
+       memset(workob, 0, sizeof(Object));
        
-       workob.size[0]= workob.size[1]= workob.size[2]= 1.0;
+       workob->size[0]= workob->size[1]= workob->size[2]= 1.0;
        
 }
 
@@ -2106,29 +2105,30 @@
 }
 
 /* for calculation of the inverse parent transform, only used for editor */
-void what_does_parent(Object *ob)
+void what_does_parent(Object *ob, Object *workob)
 {
-       clear_workob();
-       Mat4One(workob.obmat);
-       Mat4One(workob.parentinv);
-       Mat4One(workob.constinv);
-       workob.parent= ob->parent;
-       workob.track= ob->track;
+       clear_workob(workob);
+       
+       Mat4One(workob->obmat);
+       Mat4One(workob->parentinv);
+       Mat4One(workob->constinv);
+       workob->parent= ob->parent;
+       workob->track= ob->track;
 
-       workob.trackflag= ob->trackflag;
-       workob.upflag= ob->upflag;
+       workob->trackflag= ob->trackflag;
+       workob->upflag= ob->upflag;
        
-       workob.partype= ob->partype;
-       workob.par1= ob->par1;
-       workob.par2= ob->par2;
-       workob.par3= ob->par3;
+       workob->partype= ob->partype;
+       workob->par1= ob->par1;
+       workob->par2= ob->par2;
+       workob->par3= ob->par3;
 
-       workob.constraints.first = ob->constraints.first;
-       workob.constraints.last = ob->constraints.last;
+       workob->constraints.first = ob->constraints.first;
+       workob->constraints.last = ob->constraints.last;
 
-       strcpy(workob.parsubstr, ob->parsubstr); 
+       strcpy(workob->parsubstr, ob->parsubstr); 
 
-       where_is_object(&workob);
+       where_is_object(workob);
 }
 
 BoundBox *unit_boundbox()

Modified: 
branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c     
2008-12-24 10:50:39 UTC (rev 18042)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c     
2008-12-24 11:08:15 UTC (rev 18043)
@@ -792,13 +792,14 @@
  * apply-size-rot or object center for eg */
 static void ignore_parent_tx( Object *ob ) 
 {
+       Object workob;
        Object *ob_child;
        
        /* a change was made, adjust the children to compensate */
        for (ob_child=G.main->object.first; ob_child; 
ob_child=ob_child->id.next) {
                if (ob_child->parent == ob) {
                        apply_obmat(ob_child);
-                       what_does_parent(ob_child);
+                       what_does_parent(ob_child, &workob);
                        Mat4Invert(ob_child->parentinv, workob.obmat);
                }
        }
@@ -1221,6 +1222,8 @@
                                        error("Loop in parents");
                                }
                                else {
+                                       Object workob;
+                                       
                                        ob->parent= BASACT->object;
                                        if(v3) {
                                                ob->partype= PARVERT3;
@@ -1229,18 +1232,16 @@
                                                ob->par3= v3-1;
 
                                                /* inverse parent matrix */
-                                               what_does_parent(ob);
+                                               what_does_parent(ob, &workob);
                                                Mat4Invert(ob->parentinv, 
workob.obmat);
-                                               clear_workob();
                                        }
                                        else {
                                                ob->partype= PARVERT1;
                                                ob->par1= v1-1;
 
                                                /* inverse parent matrix */
-                                               what_does_parent(ob);
+                                               what_does_parent(ob, &workob);
                                                Mat4Invert(ob->parentinv, 
workob.obmat);
-                                               clear_workob();
                                        }
                                }
                        }
@@ -1384,7 +1385,7 @@
                                                        base->object->partype= 
mode;
                                                }
                                                else
-                                                       
what_does_parent(base->object);
+                                                       
what_does_parent(base->object, &workob);
                                                
Mat4Invert(base->object->parentinv, workob.obmat);
                                        }
                                }
@@ -1471,6 +1472,7 @@
                                error("Loop in parents");
                        }
                        else {
+                               Object workob;
                                
                                /* apply transformation of previous parenting */
                                apply_obmat(ob);
@@ -1488,7 +1490,7 @@
                                }
                                
                                /* calculate inverse parent matrix */
-                               what_does_parent(ob);
+                               what_does_parent(ob, &workob);
                                Mat4Invert(ob->parentinv, workob.obmat);
                                
                                ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA;


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

Reply via email to