* Added AnimData for Armature data, for animating armature/bone settings.

This allows you to do funky things like animating the number of segments in a b-bone.
This commit is contained in:
2009-09-21 06:43:20 +00:00
parent ad7fab49d4
commit fcab32fa20
9 changed files with 145 additions and 12 deletions

View File

@@ -2331,6 +2331,7 @@ static void lib_link_armature(FileData *fd, Main *main)
while(arm) {
if(arm->id.flag & LIB_NEEDLINK) {
if (arm->adt) lib_link_animdata(fd, &arm->id, arm->adt);
arm->id.flag -= LIB_NEEDLINK;
}
arm= arm->id.next;
@@ -2357,6 +2358,7 @@ static void direct_link_armature(FileData *fd, bArmature *arm)
link_list(fd, &arm->bonebase);
arm->edbo= NULL;
arm->sketch = NULL;
arm->adt= newdataadr(fd, arm->adt);
bone=arm->bonebase.first;
while (bone) {
@@ -9697,15 +9699,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
sce->unit.scale_length= 1.0f;
for(ob = main->object.first; ob; ob = ob->id.next) {
ModifierData *md;
/* add backwards pointer for fluidsim modifier RNA access */
for (md=ob->modifiers.first; md; md = md->next) {
if (md->type == eModifierType_Fluidsim) {
FluidsimModifierData *fluidmd= (FluidsimModifierData*) md;
fluidmd->fss->fmd = fluidmd;
}
}
FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
if (fluidmd) fluidmd->fss->fmd = fluidmd;
}
for(sce= main->scene.first; sce; sce= sce->id.next)
@@ -10434,6 +10429,9 @@ static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
{
Bone *curBone;
if(arm->adt)
expand_animdata(fd, mainvar, arm->adt);
for (curBone = arm->bonebase.first; curBone; curBone=curBone->next) {
expand_bones(fd, mainvar, curBone);
}