Revision: 20517
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20517
Author:   aligorith
Date:     2009-05-30 13:05:29 +0200 (Sat, 30 May 2009)

Log Message:
-----------
NLA SoC: Bugfixes for previous commit 

* Compile fix in nla_draw.c 
* Not totally correct yet, but now NLA-tracks get drawn too after action 
'push-down'

Modified Paths:
--------------
    branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c
    branches/soc-2009-aligorith/source/blender/editors/animation/anim_filter.c
    branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c

Modified: branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c  
2009-05-30 10:41:41 UTC (rev 20516)
+++ branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c  
2009-05-30 11:05:29 UTC (rev 20517)
@@ -427,8 +427,10 @@
         * as that will cause us grief down the track
         */
        // TODO: what about modifiers?
-       if (action_has_motion(adt->action) == 0)
+       if (action_has_motion(adt->action) == 0) {
+               printf("BKE_nla_action_pushdown(): action has no data \n");
                return;
+       }
                
        /* add a new NLA track to house this action 
         *      - we could investigate trying to fit the action into an 
appropriately
@@ -436,8 +438,10 @@
         *        changes in blending behaviour...
         */
        nlt= add_nlatrack(adt);
-       if (nlt == NULL)
+       if (nlt == NULL) {
+               printf("BKE_nla_action_pushdown(): no NLA-track added \n");
                return;
+       }
        
        /* add a new NLA strip to the track, which references the active action 
*/
        strip= add_nlastrip(nlt, adt->action);
@@ -448,6 +452,9 @@
                adt->action= NULL;
        }
        
+       // TEMP DEBUG...
+       printf("BKE_nla_action_pushdown(): NLA strip added.. done \n");
+       
        // TODO: set any other flags necessary here...
 }
 

Modified: 
branches/soc-2009-aligorith/source/blender/editors/animation/anim_filter.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/editors/animation/anim_filter.c  
2009-05-30 10:41:41 UTC (rev 20516)
+++ branches/soc-2009-aligorith/source/blender/editors/animation/anim_filter.c  
2009-05-30 11:05:29 UTC (rev 20517)
@@ -1334,23 +1334,19 @@
        /* scene-linked animation */
        // TODO: sequencer, composite nodes - are we to include those here too?
        {
-               short sceOk, worOk;
+               short sceOk= 0, worOk= 0;
                
                /* check filtering-flags if ok */
-               if (ads->filterflag) {
-                       if (ads->filterflag & ADS_FILTER_ONLYDRIVERS) {
-                               sceOk= (ANIMDATA_HAS_DRIVERS(sce) && 
!(ads->filterflag & ADS_FILTER_NOSCE));
-                               worOk= ((sce->world) && 
ANIMDATA_HAS_DRIVERS(sce->world) && !(ads->filterflag & ADS_FILTER_NOWOR));
-                       }
-                       else {
-                               sceOk= (ANIMDATA_HAS_KEYS(sce) && 
!(ads->filterflag & ADS_FILTER_NOSCE));
-                               worOk= ((sce->world) && 
ANIMDATA_HAS_KEYS(sce->world) && !(ads->filterflag & ADS_FILTER_NOWOR));
-                       }
+               ANIMDATA_FILTER_CASES(sce, 
+                       sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);, 
+                       sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);, 
+                       sceOk= !(ads->filterflag & ADS_FILTER_NOSCE);)
+               if (sce->world) {
+                       ANIMDATA_FILTER_CASES(sce->world, 
+                               worOk= !(ads->filterflag & ADS_FILTER_NOWOR);, 
+                               worOk= !(ads->filterflag & ADS_FILTER_NOWOR);, 
+                               worOk= !(ads->filterflag & ADS_FILTER_NOWOR);)
                }
-               else {
-                       sceOk= (ANIMDATA_HAS_KEYS(sce));
-                       worOk= ((sce->world) && ANIMDATA_HAS_KEYS(sce->world));
-               }
                
                /* check if not all bad (i.e. so there is something to show) */
                if ( !(!sceOk && !worOk) ) {
@@ -1391,14 +1387,18 @@
                                }
                                
                                /* check filters for datatypes */
-                               if (ads->filterflag & ADS_FILTER_ONLYDRIVERS) {
-                                       actOk= (ANIMDATA_HAS_DRIVERS(ob));
-                                       keyOk= ((key) && 
ANIMDATA_HAS_DRIVERS(key) && !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS));
+                                       /* object */
+                               ANIMDATA_FILTER_CASES(ob, 
+                                       actOk= 1;, 
+                                       actOk= 1;, 
+                                       actOk= 1;)
+                               if (key) {
+                                       /* shapekeys */
+                                       ANIMDATA_FILTER_CASES(key, 
+                                               keyOk= 1;, 
+                                               keyOk= 1;, 
+                                               keyOk= 1;)
                                }
-                               else {
-                                       actOk= ANIMDATA_HAS_KEYS(ob);
-                                       keyOk= ((key) && ANIMDATA_HAS_KEYS(key) 
&& !(ads->filterflag & ADS_FILTER_NOSHAPEKEYS));
-                               }
                                
                                /* materials - only for geometric types */
                                matOk= 0; /* by default, not ok... */
@@ -1412,18 +1412,13 @@
                                                Material *ma= 
give_current_material(ob, a);
                                                
                                                /* if material has relevant 
animation data, break */
-                                               if (ads->filterflag & 
ADS_FILTER_ONLYDRIVERS) {
-                                                       if 
(ANIMDATA_HAS_DRIVERS(ma)) {
-                                                               matOk= 1;
-                                                               break;
-                                                       }
-                                               }
-                                               else {
-                                                       if 
(ANIMDATA_HAS_KEYS(ma)) {
-                                                               matOk= 1;
-                                                               break;
-                                                       }
-                                               }
+                                               ANIMDATA_FILTER_CASES(ma, 
+                                                       matOk= 1;, 
+                                                       matOk= 1;, 
+                                                       matOk= 1;)
+                                                       
+                                               if (matOk) 
+                                                       break;
                                        }
                                }
                                
@@ -1432,19 +1427,19 @@
                                        case OB_CAMERA: /* ------- Camera 
------------ */
                                        {
                                                Camera *ca= (Camera *)ob->data;
-                                               if (ads->filterflag & 
ADS_FILTER_ONLYDRIVERS)
-                                                       dataOk= 
(ANIMDATA_HAS_DRIVERS(ca) && !(ads->filterflag & ADS_FILTER_NOCAM));
-                                               else
-                                                       dataOk= 
(ANIMDATA_HAS_KEYS(ca) && !(ads->filterflag & ADS_FILTER_NOCAM));               
                                
+                                               ANIMDATA_FILTER_CASES(ca, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOCAM);, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOCAM);, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOCAM);)
                                        }
                                                break;
                                        case OB_LAMP: /* ---------- Lamp 
----------- */
                                        {
                                                Lamp *la= (Lamp *)ob->data;
-                                               if (ads->filterflag & 
ADS_FILTER_ONLYDRIVERS)
-                                                       dataOk= 
(ANIMDATA_HAS_DRIVERS(la) && !(ads->filterflag & ADS_FILTER_NOLAM));
-                                               else
-                                                       dataOk= 
(ANIMDATA_HAS_KEYS(la) && !(ads->filterflag & ADS_FILTER_NOLAM));       
+                                               ANIMDATA_FILTER_CASES(la, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOLAM);, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOLAM);, 
+                                                       dataOk= 
!(ads->filterflag & ADS_FILTER_NOLAM);)
                                        }
                                                break;
                                        default: /* --- other --- */

Modified: 
branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c     
2009-05-30 10:41:41 UTC (rev 20516)
+++ branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c     
2009-05-30 11:05:29 UTC (rev 20517)
@@ -618,7 +618,7 @@
                                glBegin(GL_LINES);
                                        
glVertex2f((float)NLACHANNEL_NAMEWIDTH-offset-1, y-7);
                                        
glVertex2f((float)NLACHANNEL_NAMEWIDTH-offset-1, y+7);
-                                       
glVertex2f((float)NLACHANNEL_NAMEWIDTH-1, y-7;
+                                       
glVertex2f((float)NLACHANNEL_NAMEWIDTH-1, y-7);
                                        
glVertex2f((float)NLACHANNEL_NAMEWIDTH-1, y+7);
                                glEnd(); // GL_LINES
                                


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

Reply via email to