[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20113] branches/blender2.5/blender/source /blender/editors: 2.5 Bugfixes:

Joshua Leung aligorith at gmail.com
Sat May 9 04:37:13 CEST 2009


Revision: 20113
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20113
Author:   aligorith
Date:     2009-05-09 04:37:12 +0200 (Sat, 09 May 2009)

Log Message:
-----------
2.5 Bugfixes:

More work on getting these marker-dependent tools working. They should finally work now :)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/animation/anim_filter.c
    branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c
    branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h
    branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c
    branches/blender2.5/blender/source/blender/editors/space_action/action_select.c
    branches/blender2.5/blender/source/blender/editors/space_graph/graph_edit.c
    branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.c

Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_filter.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/animation/anim_filter.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/animation/anim_filter.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -292,9 +292,7 @@
 	/* get useful default context settings from context */
 	ac->scene= scene;
 	if (scene) {
-		ac->markers.first= scene->markers.first;
-		ac->markers.last= scene->markers.last;
-		
+		ac->markers= &scene->markers;		
 		ac->obact= (scene->basact)?  scene->basact->object : NULL;
 	}
 	ac->sa= sa;

Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/animation/anim_markers.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -119,6 +119,7 @@
 	int selcount = 0;
 	
 	/* sanity check */
+	printf("markers = %p -  %p, %p \n", markers, markers->first, markers->last);
 	if (markers == NULL) {
 		*first = 0.0f;
 		*last = 0.0f;
@@ -126,11 +127,11 @@
 	}
 	
 	if (markers->first && markers->last) {
-		TimeMarker *first= markers->first;
-		TimeMarker *last= markers->last;
+		TimeMarker *fm= markers->first;
+		TimeMarker *lm= markers->last;
 		
-		min= first->frame;
-		max= last->frame;
+		min= (float)fm->frame;
+		max= (float)lm->frame;
 	}
 	else {
 		*first = 0.0f;
@@ -157,15 +158,15 @@
 				if (marker->flag & SELECT) {
 					if (marker->frame < min)
 						min= (float)marker->frame;
-					else if (marker->frame > max)
+					if (marker->frame > max)
 						max= (float)marker->frame;
 				}
 			}
 			else {
 				if (marker->frame < min)
-					min= marker->frame;
-				else if (marker->frame > max)
-					max= marker->frame;
+					min= (float)marker->frame;
+				if (marker->frame > max)
+					max= (float)marker->frame;
 			}	
 		}
 	}

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h	2009-05-09 02:37:12 UTC (rev 20113)
@@ -64,7 +64,7 @@
 	
 	struct Scene *scene;	/* active scene */
 	struct Object *obact;	/* active object */
-	ListBase markers;		/* active set of markers */
+	ListBase *markers;		/* active set of markers */
 } bAnimContext;
 
 /* Main Data container types */

Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -1118,7 +1118,10 @@
 	
 	memset(&bed, 0, sizeof(BeztEditData)); 
 	bed.scene= ac->scene;
-	bed.list= ac->scene->markers; /* for marker-snapping option */
+	if (mode == ACTKEYS_SNAP_NEAREST_MARKER) {
+		bed.list.first= (ac->markers) ? ac->markers->first : NULL;
+		bed.list.last= (ac->markers) ? ac->markers->last : NULL;
+	}
 	
 	/* snap keyframes */
 	for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1211,13 +1214,14 @@
 	/* for 'first selected marker' mode, need to find first selected marker first! */
 	// XXX should this be made into a helper func in the API?
 	if (mode == ACTKEYS_MIRROR_MARKER) {
-		Scene *scene= ac->scene;
 		TimeMarker *marker= NULL;
 		
 		/* find first selected marker */
-		for (marker= scene->markers.first; marker; marker=marker->next) {
-			if (marker->flag & SELECT) {
-				break;
+		if (ac->markers) {
+			for (marker= ac->markers->first; marker; marker=marker->next) {
+				if (marker->flag & SELECT) {
+					break;
+				}
 			}
 		}
 		

Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_action/action_select.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/space_action/action_select.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -390,18 +390,19 @@
 	bAnimListElem *ale;
 	int filter;
 	
-	BeztEditFunc select_cb;
+	BeztEditFunc ok_cb, select_cb;
 	BeztEditData bed;
 	float min, max;
 	
 	/* get extreme markers */
-	ED_markers_get_minmax(&ac->markers, 1, &min, &max);
-	
+	ED_markers_get_minmax(ac->markers, 1, &min, &max);
 	min -= 0.5f;
 	max += 0.5f;
 	
 	/* get editing funcs + data */
+	ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
 	select_cb= ANIM_editkeyframes_select(SELECT_ADD);
+	
 	memset(&bed, 0, sizeof(BeztEditData));
 	bed.f1= min; 
 	bed.f2= max;
@@ -416,11 +417,11 @@
 		
 		if (nob) {	
 			ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 0, 1);
-			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL);
+			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
 			ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 1, 1);
 		}
 		else {
-			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL);
+			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
 		}
 	}
 	
@@ -473,7 +474,7 @@
 			break;
 			
 		case ACTKEYS_COLUMNSEL_MARKERS_COLUMN: /* list of selected markers */
-			ED_markers_make_cfra_list(&ac->markers, &bed.list, 1);
+			ED_markers_make_cfra_list(ac->markers, &bed.list, 1);
 			break;
 			
 		default: /* invalid option */
@@ -765,6 +766,7 @@
 	if (ale == NULL) {
 		/* channel not found */
 		printf("Error: animation channel (index = %d) not found in mouse_action_keys() \n", channel_index);
+		return;
 	}
 	else {
 		/* found match - must return here... */

Modified: branches/blender2.5/blender/source/blender/editors/space_graph/graph_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_graph/graph_edit.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/space_graph/graph_edit.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -1396,7 +1396,10 @@
 	
 	memset(&bed, 0, sizeof(BeztEditData)); 
 	bed.scene= ac->scene;
-	bed.list= ac->markers; /* for marker-snapping option */
+	if (mode == GRAPHKEYS_SNAP_NEAREST_MARKER) {
+		bed.list.first= (ac->markers) ? ac->markers->first : NULL;
+		bed.list.last= (ac->markers) ? ac->markers->last : NULL;
+	}
 	
 	/* snap keyframes */
 	for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1490,9 +1493,11 @@
 		TimeMarker *marker= NULL;
 		
 		/* find first selected marker */
-		for (marker= ac->markers.first; marker; marker=marker->next) {
-			if (marker->flag & SELECT) {
-				break;
+		if (ac->markers) {
+			for (marker= ac->markers->first; marker; marker=marker->next) {
+				if (marker->flag & SELECT) {
+					break;
+				}
 			}
 		}
 		

Modified: branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/space_graph/graph_select.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -354,18 +354,19 @@
 	bAnimListElem *ale;
 	int filter;
 	
-	BeztEditFunc select_cb;
+	BeztEditFunc ok_cb, select_cb;
 	BeztEditData bed;
 	float min, max;
 	
 	/* get extreme markers */
-	ED_markers_get_minmax(&ac->markers, 1, &min, &max);
-	
+	ED_markers_get_minmax(ac->markers, 1, &min, &max);
 	min -= 0.5f;
 	max += 0.5f;
 	
 	/* get editing funcs + data */
+	ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
 	select_cb= ANIM_editkeyframes_select(SELECT_ADD);
+	
 	memset(&bed, 0, sizeof(BeztEditData));
 	bed.f1= min; 
 	bed.f2= max;
@@ -380,11 +381,11 @@
 		
 		if (nob) {	
 			ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 0, 1);
-			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL);
+			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
 			ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 1, 1);
 		}
 		else {
-			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL);
+			ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL);
 		}
 	}
 	

Modified: branches/blender2.5/blender/source/blender/editors/transform/transform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-05-08 21:52:57 UTC (rev 20112)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.c	2009-05-09 02:37:12 UTC (rev 20113)
@@ -89,15 +89,13 @@
 #include "BKE_utildefines.h"
 #include "BKE_context.h"
 
-//#include "BSE_drawipo.h"
-//#include "BSE_editnla_types.h"	/* for NLAWIDTH */
 //#include "BSE_editaction_types.h"
-//#include "BSE_time.h"
 //#include "BSE_view.h"
 
 #include "ED_image.h"
 #include "ED_screen.h"
 #include "ED_space_api.h"
+#include "ED_markers.h"
 #include "ED_util.h"
 #include "ED_view3d.h"
 
@@ -4388,8 +4386,8 @@
 			val= *(td->val);
 		
 		/* snap to nearest marker */
-		// XXX missing function!
-		//val= (float)find_nearest_marker_time(val);
+		// TODO: need some more careful checks for where data comes from
+		val= (float)ED_markers_find_nearest_marker_time(&t->scene->markers, val);
 		
 		/* convert frame out of nla-action time */
 		if (ob)





More information about the Bf-blender-cvs mailing list