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)


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to