Revision: 21512
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21512
Author:   aligorith
Date:     2009-07-11 05:09:44 +0200 (Sat, 11 Jul 2009)

Log Message:
-----------
NLA SoC: Quick commit of skeleton of auto-blending setting code to be completed 
later...

Modified Paths:
--------------
    branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c

Modified: branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c  
2009-07-10 23:25:30 UTC (rev 21511)
+++ branches/soc-2009-aligorith/source/blender/blenkernel/intern/nla.c  
2009-07-11 03:09:44 UTC (rev 21512)
@@ -1227,7 +1227,63 @@
        BLI_ghash_free(gh, NULL, NULL);
 }
 
+/* ---- */
 
+/* Determine auto-blending for the given strip */
+void BKE_nlastrip_validate_autoblends (NlaTrack *nlt, NlaStrip *nls)
+{
+       NlaTrack *track;
+       NlaStrip *strip;
+       //float *ps=NULL, *pe=NULL;
+       //float *ns=NULL, *ne=NULL;
+       
+       /* sanity checks */
+       if ELEM(NULL, nls, nlt)
+               return;
+       if ((nlt->prev == NULL) && (nlt->next == NULL))
+               return;
+       if ((nls->flag & NLASTRIP_FLAG_AUTO_BLENDS)==0)
+               return;
+       
+       /* get test ranges */
+       if (nlt->prev) {
+               /* find strips that overlap over the start/end of the given 
strip,
+                * but which don't cover the entire length 
+                */
+               track= nlt->prev;
+               for (strip= track->strips.first; strip; strip= strip->next) {
+                       
+               }
+       }
+       if (nlt->next) {
+               /* find strips that overlap over the start/end of the given 
strip,
+                * but which don't cover the entire length 
+                */
+               track= nlt->next;
+               for (strip= track->strips.first; strip; strip= strip->next) {
+                       
+               }
+       }
+}
+
+/* Ensure that auto-blending and other settings are set correctly */
+void BKE_nla_validate_state (AnimData *adt)
+{
+       NlaStrip *strip;
+       NlaTrack *nlt;
+       
+       /* sanity checks */
+       if ELEM(NULL, adt, adt->nla_tracks.first)
+               return;
+               
+       /* adjust blending values for auto-blending */
+       for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
+               for (strip= nlt->strips.first; strip; strip= strip->next) {
+                       BKE_nlastrip_validate_autoblends(nlt, strip);
+               }
+       }
+}
+
 /* Core Tools ------------------------------------------- */
 
 /* For the given AnimData block, add the active action to the NLA


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

Reply via email to