[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18043] branches/blender2.5/blender/source /blender: 2.5
Ton Roosendaal
ton at blender.org
Wed Dec 24 12:08:15 CET 2008
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;
More information about the Bf-blender-cvs
mailing list