diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2008-07-27 16:28:34 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2008-07-27 16:28:34 +0400 |
commit | 7762ef9574c7961b7dc2fac7f4bdf950967dd17d (patch) | |
tree | 7ccb285cb6f4e0604b5d1774be6d5cecee6eff82 /source/blender/blenkernel/intern/modifier.c | |
parent | 5ae7824a47f63c91b141a795f1b92de853644440 (diff) |
Almost done with 'Phase 1': Fixed depsgraph update of modifier, fixed material index deletion, fixed face flag deletion (using face0 now as old fluid code)
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 1f2c570321e..d970b064a44 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6932,6 +6932,36 @@ static DerivedMesh * fluidsimModifier_applyModifier( return derivedData; } +static void fluidsimModifier_updateDepgraph( + ModifierData *md, DagForest *forest, + Object *ob, DagNode *obNode) +{ + FluidsimModifierData *fluidmd= (FluidsimModifierData*) md; + Base *base; + + if(fluidmd && fluidmd->fss) + { + if(fluidmd->fss->type == OB_FLUIDSIM_DOMAIN) + { + for(base = G.scene->base.first; base; base= base->next) + { + Object *ob1= base->object; + if(ob1 != ob) + { + FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(ob1, eModifierType_Fluidsim); + + // only put dependancies from NON-DOMAIN fluids in here + if(fluidmdtmp && fluidmdtmp->fss && (fluidmdtmp->fss->type!=OB_FLUIDSIM_DOMAIN)) + { + DagNode *curNode = dag_get_node(forest, ob1); + dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, "Fluidsim Object"); + } + } + } + } + } +} + static int fluidsimModifier_dependsOnTime(ModifierData *md) { return 1; @@ -7577,6 +7607,7 @@ ModifierTypeInfo *modifierType_getInfo(ModifierType type) mti->freeData = fluidsimModifier_freeData; mti->dependsOnTime = fluidsimModifier_dependsOnTime; mti->applyModifier = fluidsimModifier_applyModifier; + mti->updateDepgraph = fluidsimModifier_updateDepgraph; typeArrInit = 0; #undef INIT_TYPE |