have timeoffset use (int)floor(timeoffset+0.5f) when converting to an int to avoid...
authorCampbell Barton <ideasman42@gmail.com>
Mon, 3 May 2010 15:56:44 +0000 (15:56 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 3 May 2010 15:56:44 +0000 (15:56 +0000)
source/blender/blenkernel/intern/group.c
source/blender/editors/animation/anim_draw.c

index 6a807abc396738cba4cf4e473167f7f3af90d183..2a4d3f6d30140c568f0f8f7c4dea6cb07b391c08 100644 (file)
@@ -333,7 +333,7 @@ void group_handle_recalc_and_update(Scene *scene, Object *parent, Group *group)
                
                /* switch to local time */
                cfrao= scene->r.cfra;
-               scene->r.cfra -= (int)give_timeoffset(parent);
+               scene->r.cfra -= (int)floor(give_timeoffset(parent) + 0.5f);
                
                /* we need a DAG per group... */
                for(go= group->gobject.first; go; go= go->next) {
index 62f421de71c6068e23f9895b05272c460bc08945..f5f50e10bcb81bfc3b95154e7c080b2470108cdc 100644 (file)
@@ -232,20 +232,22 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag)
        /* Draw dark green line if slow-parenting/time-offset is enabled */
        if (flag & DRAWCFRA_SHOW_TIMEOFS) {
                Object *ob= (scene->basact) ? (scene->basact->object) : 0;
-               
-               // XXX ob->ipoflag is depreceated!
-               if ((ob) && (ob->ipoflag & OB_OFFS_OB) && (give_timeoffset(ob)!=0.0f)) {
-                       vec[0]-= give_timeoffset(ob); /* could avoid calling twice */
+               if(ob) {
+                       float timeoffset= give_timeoffset(ob);
+                       // XXX ob->ipoflag is depreceated!
+                       if ((ob->ipoflag & OB_OFFS_OB) && (timeoffset != 0.0f)) {
+                               vec[0]-= timeoffset; /* could avoid calling twice */
                        
-                       UI_ThemeColorShade(TH_CFRAME, -30);
+                               UI_ThemeColorShade(TH_CFRAME, -30);
                        
-                       glBegin(GL_LINE_STRIP);
-                               /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included
-                               glVertex2fv(vec);
+                               glBegin(GL_LINE_STRIP);
+                                       /*vec[1]= v2d->cur.ymax;*/ // this is set already. this line is only included
+                                       glVertex2fv(vec);
                                
-                               vec[1]= v2d->cur.ymin;
-                               glVertex2fv(vec);
-                       glEnd();
+                                       vec[1]= v2d->cur.ymin;
+                                       glVertex2fv(vec);
+                               glEnd();
+                       }
                }
        }