Hi,<br><br>I've just committed some fixes for some rather critical bugs caused by this commit. A few of my files refused to load (they hung in some system loop of some kind), while the 3d-view often "blanked out" on a few other files which managed to load (
i.e. peach bunny).<br><br>Checking the console, I noticed there were quite a few compiler warnings once again (all due to this commit it seems). Once I resolved all of them, the problems were gone. So once again, a reminder to all: "Check your compiler warnings!"
<br><br><br>Regards,<br>Joshua<br><br><div class="gmail_quote">On Jan 20, 2008 5:32 AM, Campbell Barton <<a href="mailto:ideasman42@gmail.com">ideasman42@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Revision: 13295<br> <a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13295" target="_blank">http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13295
</a><br>Author: campbellbarton<br>Date: 2008-01-19 17:32:29 +0100 (Sat, 19 Jan 2008)<br><br>Log Message:<br>-----------<br>add the option to add the parents time offset value.<br><br>Modified Paths:<br>--------------
<br> trunk/blender/source/blender/blenkernel/BKE_object.h<br> trunk/blender/source/blender/blenkernel/intern/effect.c<br> trunk/blender/source/blender/blenkernel/intern/group.c<br> trunk/blender/source/blender/blenkernel/intern/object.c
<br> trunk/blender/source/blender/makesdna/DNA_object_types.h<br> trunk/blender/source/blender/python/api2_2x/Effect.c<br> trunk/blender/source/blender/src/buttons_object.c<br> trunk/blender/source/blender/src/drawaction.c
<br> trunk/blender/source/blender/src/drawipo.c<br> trunk/blender/source/blender/src/drawobject.c<br> trunk/blender/source/blender/src/editipo.c<br> trunk/blender/source/blender/src/editobject.c<br><br>Modified: trunk/blender/source/blender/blenkernel/BKE_object.h
<br>===================================================================<br>--- trunk/blender/source/blender/blenkernel/BKE_object.h 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/blenkernel/BKE_object.h 2008-01-19 16:32:29 UTC (rev 13295)
<br>@@ -110,6 +110,8 @@<br><br> void object_handle_update(struct Object *ob);<br><br>+float give_timeoffset(struct Object *ob);<br>+<br> #ifdef __cplusplus<br> }<br> #endif<br><br>Modified: trunk/blender/source/blender/blenkernel/intern/effect.c
<br>===================================================================<br>--- trunk/blender/source/blender/blenkernel/intern/effect.c 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/blenkernel/intern/effect.c 2008-01-19 16:32:29 UTC (rev 13295)
<br>@@ -1559,7 +1559,7 @@<br> framelenold= G.scene->r.framelen;<br> G.scene->r.framelen= 1.0f;<br> cfrao= G.scene->r.cfra;<br>- sfo= ob->sf;<br>+ sfo= ob->sf; /* warning, dont use sfo, value should be from give_timeoffset if used for anything */
<br> ob->sf= 0.0f;<br><br> /* clear storage, copy recalc tag (bad loop) */<br><br>Modified: trunk/blender/source/blender/blenkernel/intern/group.c<br>===================================================================
<br>--- trunk/blender/source/blender/blenkernel/intern/group.c 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/blenkernel/intern/group.c 2008-01-19 16:32:29 UTC (rev 13295)<br>@@ -241,12 +241,12 @@
<br> GroupObject *go;<br><br> /* if animated group... */<br>- if(parent->sf != 0.0f || parent->nlastrips.first) {<br>+ if(give_timeoffset(parent) != 0.0f || parent->nlastrips.first) {<br>
int cfrao;<br><br> /* switch to local time */<br> cfrao= G.scene->r.cfra;<br>- G.scene->r.cfra -= (int)parent->sf;<br>+ G.scene->r.cfra
-= (int)give_timeoffset(parent);<br><br> /* we need a DAG per group... */<br> for(go= group->gobject.first; go; go= go->next) {<br><br>Modified: trunk/blender/source/blender/blenkernel/intern/object.c
<br>===================================================================<br>--- trunk/blender/source/blender/blenkernel/intern/object.c 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/blenkernel/intern/object.c 2008-01-19 16:32:29 UTC (rev 13295)
<br>@@ -1367,7 +1367,7 @@<br><br> /* ofset frames */<br> if ((ob->ipoflag & OB_OFFS_PARENT) && (ob->partype & PARSLOW)==0)<br>- cfra-= ob->sf;<br>
+ cfra-= give_timeoffset(ob);<br> }<br><br> cfra-= ofs;<br>@@ -1438,7 +1438,7 @@<br> {<br> Curve *cu;<br> float q[4], vec[4], dir[3], *quat, x1, ctime;<br>- float timeoffs=
0.0;<br>+ float timeoffs, sf_orig = 0.0;<br><br> Mat4One(mat);<br><br>@@ -1449,7 +1449,8 @@<br><br> /* exception, timeoffset is regarded as distance offset */<br> if(cu->flag & CU_OFFS_PATHDIST) {
<br>- SWAP(float, timeoffs, ob->sf);<br>+ timeoffs = give_timeoffset(ob);<br>+ SWAP(float, sf_orig, ob->sf);<br> }<br><br> /* catch exceptions: feature for nla stride editing */
<br>@@ -1466,7 +1467,7 @@<br> }<br> }<br> else {<br>- ctime= G.scene->r.cfra - ob->sf;<br>+ ctime= G.scene->r.cfra - give_timeoffset(ob);<br> ctime /= cu->pathlen;
<br><br> CLAMP(ctime, 0.0, 1.0);<br>@@ -1477,7 +1478,7 @@<br> ctime += timeoffs/cu->path->totdist;<br><br> /* restore */<br>- SWAP(float, timeoffs, ob->sf);
<br>+ SWAP(float, sf_orig, ob->sf);<br> }<br><br><br>@@ -1735,7 +1736,7 @@<br> if(ob->parent) {<br> Object *par= ob->parent;<br><br>- if(ob->ipoflag & OB_OFFS_PARENT) ctime-= ob->sf;
<br>+ if(ob->ipoflag & OB_OFFS_PARENT) ctime-= give_timeoffset(ob);<br><br> /* hurms, code below conflicts with depgraph... (ton) */<br> /* and even worse, it gives bad effects for NLA stride too (try ctime != par->ctime, with MBlur) */
<br>@@ -1759,7 +1760,7 @@<br> if(ob->partype & PARSLOW) {<br> // include framerate<br><br>- fac1= (1.0f/(1.0f+ fabs(ob->sf)));<br>+ fac1= (
1.0f/(1.0f+ fabs(give_timeoffset(ob))));<br> if(fac1>=1.0) return;<br> fac2= 1.0f-fac1;<br><br>@@ -1942,7 +1943,7 @@<br><br> if(ob->partype & PARSLOW) {
<br><br>- fac1= (float)(1.0/(1.0+ fabs(ob->sf)));<br>+ fac1= (float)(1.0/(1.0+ fabs(give_timeoffset(ob))));<br> fac2= 1.0f-fac1;<br> fp1= ob->obmat[0];
<br> fp2= slowmat[0];<br>@@ -2247,3 +2248,11 @@<br> // printf("set proxy pointer for later group stuff %s\n", ob-><a href="http://id.name" target="_blank">id.name</a>);<br>
}<br> }<br>+<br>+float give_timeoffset(Object *ob) {<br>+ if ((ob->ipoflag & OB_OFFS_PARENTADD) && ob->parent) {<br>+ return ob->sf + give_timeoffset(ob->parent);<br>+ } else {
<br>+ return ob->sf;<br>+ }<br>+}<br>\ No newline at end of file<br><br>Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h<br>===================================================================
<br>--- trunk/blender/source/blender/makesdna/DNA_object_types.h 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/makesdna/DNA_object_types.h 2008-01-19 16:32:29 UTC (rev 13295)<br>@@ -297,6 +297,9 @@
<br> /* for stride edit */<br> #define OB_DISABLE_PATH 1024<br><br>+#define OB_OFFS_PARENTADD 2048<br>+<br>+<br> /* (short) trackflag / upflag */<br> #define OB_POSX 0<br>
#define OB_POSY 1<br><br>Modified: trunk/blender/source/blender/python/api2_2x/Effect.c<br>===================================================================<br>--- trunk/blender/source/blender/python/api2_2x/Effect.c 2008-01-19 15:13:42 UTC (rev 13294)
<br>+++ trunk/blender/source/blender/python/api2_2x/Effect.c 2008-01-19 16:32:29 UTC (rev 13295)<br>@@ -1,5 +1,5 @@<br> /*<br>- * $Id: Effect.c 11485 2007-08-05 09:21:29Z aligorith $<br>+ * $Id$<br> *<br> * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
<br> *<br>@@ -1330,7 +1330,7 @@<br><br> /* if object is in motion */<br> if( ob->ipoflag & OB_OFFS_PARTICLE )<br>- p_time= ob->sf;<br>+ p_time= give_timeoffset(ob);<br>
else<br> p_time= 0.0;<br><br><br>Modified: trunk/blender/source/blender/src/buttons_object.c<br>===================================================================<br>--- trunk/blender/source/blender/src/buttons_object.c 2008-01-19 15:13:42 UTC (rev 13294)
<br>+++ trunk/blender/source/blender/src/buttons_object.c 2008-01-19 16:32:29 UTC (rev 13295)<br>@@ -2494,21 +2494,25 @@<br> uiDefButI(block, NUM, REDRAWVIEW3D, "DupOn:", 170,85,146,19, &ob->dupon,
1.0, 1500.0, 0, 0, "Specify the number of frames to use between DupOff frames");<br> uiDefButI(block, NUM, REDRAWVIEW3D, "DupEnd", 24,65,140,19, &ob->dupend, 1.0, 32767, 0, 0, "Specify endframe for Dupliframes");
<br> uiDefButI(block, NUM, REDRAWVIEW3D, "DupOff", 171,65,145,19, &ob->dupoff, 0.0, 1500.0, 0, 0, "Specify recurring frames to exclude from the Dupliframes");<br>+ uiBlockEndAlign(block);
<br>+<br> uiBlockBeginAlign(block);<br>- uiDefButBitS(block, TOG, OB_OFFS_OB, REDRAWALL, "Offs Ob", 24,35,56,20, &ob->ipoflag, 0, 0, 0, 0, "Not functional at the moment!");
<br>- uiDefButBitS(block, TOG, OB_OFFS_PARENT, REDRAWALL, "Offs Par", 82,35,56,20 , &ob->ipoflag, 0, 0, 0, 0, "Let the timeoffset work on the parent");<br>- uiDefButBitS(block, TOG, OB_OFFS_PARTICLE, REDRAWALL, "Offs Particle", 140,35,103,20, &ob->ipoflag, 0, 0, 0, 0, "Let the timeoffset work on the particle effect");
<br>+ uiDefButF(block, NUM, REDRAWALL, "TimeOffset:", 24,35,115,20, &ob->sf, -MAXFRAMEF, MAXFRAMEF, 100, 0, "Animation offset in frames for ipo's and dupligroup instances");
<br>+ uiDefBut(block, BUT, B_AUTOTIMEOFS, "Auto", 139,35,34,20, 0, 0, 0, 0, 0, "Assign selected objects a timeoffset within a range, starting from the active object");<br>+ uiDefBut(block, BUT, B_OFSTIMEOFS, "Ofs", 173,35,34,20, 0, 0, 0, 0, 0, "Offset selected objects timeoffset");
<br>+ uiDefBut(block, BUT, B_RANDTIMEOFS, "Rand", 207,35,34,20, 0, 0, 0, 0, 0, "Randomize selected objects timeoffset");<br>+ uiDefBut(block, BUT, B_PRINTSPEED, "PrSpeed", 250,35,65,20, 0, 0, 0, 0, 0, "Print objectspeed");
<br>+ uiBlockEndAlign(block);<br><br> uiBlockBeginAlign(block);<br>- uiDefButF(block, NUM, REDRAWALL, "TimeOffset:", 24,10,115,20, &ob->sf, -MAXFRAMEF, MAXFRAMEF, 100, 0, "Animation offset in frames for ipo's and dupligroup instances");
<br>- uiDefBut(block, BUT, B_AUTOTIMEOFS, "Auto", 139,10,34,20, 0, 0, 0, 0, 0, "Assign selected objects a timeoffset within a range, starting from the active object");<br>- uiDefBut(block, BUT, B_OFSTIMEOFS, "Ofs", 173,10,34,20, 0, 0, 0, 0, 0, "Offset selected objects timeoffset");
<br>- uiDefBut(block, BUT, B_RANDTIMEOFS, "Rand", 207,10,34,20, 0, 0, 0, 0, 0, "Randomize selected objects timeoffset");<br>- uiDefBut(block, BUT, B_PRINTSPEED, "PrSpeed", 250,10,65,20, 0, 0, 0, 0, 0, "Print objectspeed");
<br>+ uiDefButBitS(block, TOG, OB_OFFS_OB, REDRAWALL, "OfsEdit", 24,10,56,20, &ob->ipoflag, 0, 0, 0, 0, "Use timeoffset when inserting keys and display timeoffset for ipo and action views");
<br>+ uiDefButBitS(block, TOG, OB_OFFS_PARENT, REDRAWALL, "OfsParent", 82,10,56,20 , &ob->ipoflag, 0, 0, 0, 0, "Apply the timeoffset to this objects parent relationship");
<br>+ uiDefButBitS(block, TOG, OB_OFFS_PARTICLE, REDRAWALL, "OfsParticle", 140,10,56,20, &ob->ipoflag, 0, 0, 0, 0, "Let the timeoffset work on the particle effect");<br>+ uiDefButBitS(block, TOG, OB_OFFS_PARENTADD, REDRAWALL, "AddParent", 196,10,56,20, &ob->ipoflag, 0, 0, 0, 0, "Add the parents timeoffset value");
<br> uiBlockEndAlign(block);<br><br> sprintf(str, "%.4f", prspeed);<br>- uiDefBut(block, LABEL, 0, str, 247,35,63,31, NULL, 1.0, 0, 0, 0, "");
<br>+ uiDefBut(block, LABEL, 0, str, 260,10,63,31, NULL, 1.0, 0, 0, 0, "");<br><br> }<br><br><br>Modified: trunk/blender/source/blender/src/drawaction.c<br>
===================================================================<br>--- trunk/blender/source/blender/src/drawaction.c 2008-01-19 15:13:42 UTC (rev 13294)<br>+++ trunk/blender/source/blender/src/drawaction.c 2008-01-19 16:32:29 UTC (rev 13295)
<br>@@ -374,8 +374,8 @@<br><br> /* Draw dark green line if slow-parenting/time-offset is enabled */<br> ob= (G.scene->basact) ? (G.scene->basact->object) : 0;<br>- if ((ob) && (ob->sf!=
0.0) && (ob->ipoflag & OB_OFFS_OB)) {<br>- vec[0]-= ob->sf;<br>+ if ((ob) && (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)!=0.0)) {<br>+ vec[0]-= give_timeoffset(ob); /* could avoid calling twice */
<br><br> BIF_ThemeColorShade(TH_CFRAME, -30);<br><br><br>Modified: trunk/blender/source/blender/src/drawipo.c<br>===================================================================<br>--- trunk/blender/source/blender/src/drawipo.c 2008-01-19 15:13:42 UTC (rev 13294)
<br>+++ trunk/blender/source/blender/src/drawipo.c 2008-01-19 16:32:29 UTC (rev 13295)<br>@@ -1571,8 +1571,8 @@<br><br> if(sipo->blocktype==ID_OB) {<br> ob= (G.scene->basact) ? (G.scene->basact->object) : 0;
<br>- if (ob && (ob->sf!=0.0) && (ob->ipoflag & OB_OFFS_OB) ) {<br>- vec[0]-= ob->sf;<br>+ if (ob && (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)!=
0.0)) {<br>+ vec[0]-= give_timeoffset(ob);<br><br> BIF_ThemeColorShade(TH_HILITE, -30);<br><br><br>Modified: trunk/blender/source/blender/src/drawobject.c<br><br>@@ Diff output truncated at 10240 characters. @@
<br><br>_______________________________________________<br>Bf-blender-cvs mailing list<br><a href="mailto:Bf-blender-cvs@blender.org">Bf-blender-cvs@blender.org</a><br><a href="http://lists.blender.org/mailman/listinfo/bf-blender-cvs" target="_blank">
http://lists.blender.org/mailman/listinfo/bf-blender-cvs</a><br></blockquote></div><br>