[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