Second attempt at getting rid of bsystem_time()

Hopefully this fixes Collada. Can't really compile that to check
here...
This commit is contained in:
Joshua Leung 2011-11-06 12:12:14 +00:00
parent d738c8df1f
commit e03fdd8112
6 changed files with 12 additions and 15 deletions

@ -86,7 +86,7 @@ void scene_select_base(struct Scene *sce, struct Base *selbase);
int scene_check_setscene(struct Main *bmain, struct Scene *sce);
float BKE_curframe(struct Scene *scene);
float BKE_nextframe(struct Scene *scene);
float BKE_frame_to_ctime(struct Scene *scene, const float frame);
void scene_update_tagged(struct Main *bmain, struct Scene *sce);
void scene_clear_tagged(struct Main *bmain, struct Scene *sce);

@ -3427,7 +3427,7 @@ ModifierData *object_add_particle_system(Scene *scene, Object *ob, const char *n
psys->totpart=0;
psys->flag = PSYS_ENABLED|PSYS_CURRENT;
psys->cfra = BKE_nextframe(scene);
psys->cfra = BKE_frame_to_ctime(scene, CFRA + 1);
DAG_scene_sort(G.main, scene);
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);

@ -2148,8 +2148,8 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra
if(timescale) {
time= BKE_curframe(scene);
nexttime= BKE_nextframe(scene);
nexttime= BKE_frame_to_ctime(scene, CFRA+1);
*timescale= MAX2(nexttime - time, 0.0f);
}

@ -914,20 +914,16 @@ int scene_check_setscene(Main *bmain, Scene *sce)
*/
float BKE_curframe(Scene *scene)
{
float ctime = scene->r.cfra;
ctime += scene->r.subframe;
ctime *= scene->r.framelen;
return ctime;
return BKE_frame_to_ctime(scene, scene->r.cfra);
}
/* Similar to BKE_curframe(), but is used by physics sims to get "next time", which is defined as cfra+1 */
float BKE_nextframe(Scene *scene)
/* This function is used to obtain arbitrary fractional frames */
float BKE_frame_to_ctime(Scene *scene, const float frame)
{
float ctime = (float)(scene->r.cfra + 1);
float ctime = frame;
ctime += scene->r.subframe;
ctime *= scene->r.framelen;
return ctime;
}

@ -759,7 +759,7 @@ std::string AnimationExporter::create_4x4_source(std::vector<float> &frames , Ob
for (it = frames.begin(); it != frames.end(); it++) {
float mat[4][4], ipar[4][4];
float ctime = bsystem_time(scene, ob_arm, *it, 0.0f);
float ctime = BKE_frame_to_ctime(scene, *it);
BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM);
where_is_pose_bone(scene, ob_arm, pchan, ctime, 1);
@ -1265,7 +1265,7 @@ void AnimationExporter::sample_animation(float *v, std::vector<float> &frames, i
for (it = frames.begin(); it != frames.end(); it++) {
float mat[4][4], ipar[4][4];
float ctime = bsystem_time(scene, ob_arm, *it, 0.0f);
float ctime = BKE_frame_to_ctime(scene, *it);
BKE_animsys_evaluate_animdata(scene , &ob_arm->id, ob_arm->adt, ctime, ADT_RECALC_ANIM);

@ -38,6 +38,7 @@ extern "C"
#include "BKE_DerivedMesh.h"
#include "BKE_fcurve.h"
#include "BKE_animsys.h"
#include "BKE_scene.h"
#ifdef NAN_BUILDINFO
extern char build_rev[];
#endif