Esempio n. 1
0
static void updateDepgraph(ModifierData *UNUSED(md), DagForest *forest,
                           struct Main *UNUSED(bmain),
                           Scene *scene, Object *ob, DagNode *obNode)
{
	if (ob->soft) {
		/* Actual code uses ccd_build_deflector_hash */
		dag_add_collision_relations(forest, scene, ob, obNode, ob->soft->collision_group, ob->lay, eModifierType_Collision, NULL, false, "Softbody Collision");

		dag_add_forcefield_relations(forest, scene, ob, obNode, ob->soft->effector_weights, true, 0, "Softbody Field");
	}
}
Esempio n. 2
0
static void updateDepgraph(ModifierData *md, DagForest *forest,
                           struct Main *UNUSED(bmain),
                           Scene *scene, Object *ob, DagNode *obNode)
{
	ClothModifierData *clmd = (ClothModifierData *) md;
	
	if (clmd) {
		/* Actual code uses get_collisionobjects */
		dag_add_collision_relations(forest, scene, ob, obNode, clmd->coll_parms->group, ob->lay|scene->lay, eModifierType_Collision, NULL, true, "Cloth Collision");

		dag_add_forcefield_relations(forest, scene, ob, obNode, clmd->sim_parms->effector_weights, true, 0, "Cloth Field");
	}
}
Esempio n. 3
0
static void updateDepgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
	ClothModifierData *clmd = (ClothModifierData *) md;
	
	if (clmd) {
		/* Actual code uses get_collisionobjects */
#ifdef WITH_LEGACY_DEPSGRAPH
		dag_add_collision_relations(ctx->forest, ctx->scene, ctx->object, ctx->obNode, clmd->coll_parms->group, ctx->object->lay|ctx->scene->lay, eModifierType_Collision, NULL, true, "Cloth Collision");
		dag_add_forcefield_relations(ctx->forest, ctx->scene, ctx->object, ctx->obNode, clmd->sim_parms->effector_weights, true, 0, "Cloth Field");
#else
	(void)ctx;
#endif
	}
}
Esempio n. 4
0
static void updateDepgraph(ModifierData *md, DagForest *forest,
                           struct Main *UNUSED(bmain),
                           struct Scene *scene, struct Object *ob,
                           DagNode *obNode)
{
	SmokeModifierData *smd = (SmokeModifierData *) md;

	if (smd && (smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) {
		/* Actual code uses get_collisionobjects */
		dag_add_collision_relations(forest, scene, ob, obNode, smd->domain->fluid_group, ob->lay|scene->lay, eModifierType_Smoke, is_flow_cb, true, "Smoke Flow");
		dag_add_collision_relations(forest, scene, ob, obNode, smd->domain->coll_group, ob->lay|scene->lay, eModifierType_Smoke, is_coll_cb, true, "Smoke Coll");

		dag_add_forcefield_relations(forest, scene, ob, obNode, smd->domain->effector_weights, true, PFIELD_SMOKEFLOW, "Smoke Force Field");
	}
}