forked from bartvdbraak/blender
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:
parent
d738c8df1f
commit
e03fdd8112
@ -86,7 +86,7 @@ void scene_select_base(struct Scene *sce, struct Base *selbase);
|
|||||||
int scene_check_setscene(struct Main *bmain, struct Scene *sce);
|
int scene_check_setscene(struct Main *bmain, struct Scene *sce);
|
||||||
|
|
||||||
float BKE_curframe(struct Scene *scene);
|
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_update_tagged(struct Main *bmain, struct Scene *sce);
|
||||||
void scene_clear_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->totpart=0;
|
||||||
psys->flag = PSYS_ENABLED|PSYS_CURRENT;
|
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_scene_sort(G.main, scene);
|
||||||
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
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) {
|
if(timescale) {
|
||||||
time= BKE_curframe(scene);
|
time= BKE_curframe(scene);
|
||||||
nexttime= BKE_nextframe(scene);
|
nexttime= BKE_frame_to_ctime(scene, CFRA+1);
|
||||||
|
|
||||||
*timescale= MAX2(nexttime - time, 0.0f);
|
*timescale= MAX2(nexttime - time, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -914,20 +914,16 @@ int scene_check_setscene(Main *bmain, Scene *sce)
|
|||||||
*/
|
*/
|
||||||
float BKE_curframe(Scene *scene)
|
float BKE_curframe(Scene *scene)
|
||||||
{
|
{
|
||||||
float ctime = scene->r.cfra;
|
return BKE_frame_to_ctime(scene, scene->r.cfra);
|
||||||
ctime += scene->r.subframe;
|
|
||||||
ctime *= scene->r.framelen;
|
|
||||||
|
|
||||||
return ctime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Similar to BKE_curframe(), but is used by physics sims to get "next time", which is defined as cfra+1 */
|
/* This function is used to obtain arbitrary fractional frames */
|
||||||
float BKE_nextframe(Scene *scene)
|
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.subframe;
|
||||||
ctime *= scene->r.framelen;
|
ctime *= scene->r.framelen;
|
||||||
|
|
||||||
return ctime;
|
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++) {
|
for (it = frames.begin(); it != frames.end(); it++) {
|
||||||
float mat[4][4], ipar[4][4];
|
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);
|
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);
|
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++) {
|
for (it = frames.begin(); it != frames.end(); it++) {
|
||||||
float mat[4][4], ipar[4][4];
|
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);
|
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_DerivedMesh.h"
|
||||||
#include "BKE_fcurve.h"
|
#include "BKE_fcurve.h"
|
||||||
#include "BKE_animsys.h"
|
#include "BKE_animsys.h"
|
||||||
|
#include "BKE_scene.h"
|
||||||
#ifdef NAN_BUILDINFO
|
#ifdef NAN_BUILDINFO
|
||||||
extern char build_rev[];
|
extern char build_rev[];
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user