[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41581] trunk/blender/source/blender: Second attempt at getting rid of bsystem_time()

Joshua Leung aligorith at gmail.com
Sun Nov 6 13:12:15 CET 2011


Revision: 41581
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41581
Author:   aligorith
Date:     2011-11-06 12:12:14 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
Second attempt at getting rid of bsystem_time()

Hopefully this fixes Collada. Can't really compile that to check
here...

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_scene.h
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/collada/AnimationExporter.cpp
    trunk/blender/source/blender/collada/AnimationExporter.h

Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h	2011-11-06 12:12:14 UTC (rev 41581)
@@ -86,7 +86,7 @@
 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);

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2011-11-06 12:12:14 UTC (rev 41581)
@@ -3427,7 +3427,7 @@
 
 	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);

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2011-11-06 12:12:14 UTC (rev 41581)
@@ -2148,8 +2148,8 @@
 
 	if(timescale) {
 		time= BKE_curframe(scene);
-		nexttime= BKE_nextframe(scene);
-
+		nexttime= BKE_frame_to_ctime(scene, CFRA+1);
+		
 		*timescale= MAX2(nexttime - time, 0.0f);
 	}
 

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2011-11-06 12:12:14 UTC (rev 41581)
@@ -914,20 +914,16 @@
  */
 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;
 }
 

Modified: trunk/blender/source/blender/collada/AnimationExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/AnimationExporter.cpp	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/collada/AnimationExporter.cpp	2011-11-06 12:12:14 UTC (rev 41581)
@@ -759,7 +759,7 @@
 	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 @@
 	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);

Modified: trunk/blender/source/blender/collada/AnimationExporter.h
===================================================================
--- trunk/blender/source/blender/collada/AnimationExporter.h	2011-11-06 12:11:50 UTC (rev 41580)
+++ trunk/blender/source/blender/collada/AnimationExporter.h	2011-11-06 12:12:14 UTC (rev 41581)
@@ -38,6 +38,7 @@
 #include "BKE_DerivedMesh.h"
 #include "BKE_fcurve.h"
 #include "BKE_animsys.h"
+#include "BKE_scene.h"
 #ifdef NAN_BUILDINFO
 extern char build_rev[];
 #endif




More information about the Bf-blender-cvs mailing list