softbody <--> softbody collision

make softbodies collide with objects patented to armatures (bones), lattices .. )

Softbody deflectors always use the new modifier stack. (thanks ZR)

Softbody deflector code checks for identity of colliding objects so,
there is no need to prohibit softbodies to be a deflector.

So now you can put some soft balls in a box and see them bounce.

see : http://wund.privat.t-online.de/bt/sb_sb_coll.blend

A deflector cube parented to SB lattice:
http://wund.privat.t-online.de/bt/sb_lattice.blend

BM
This commit is contained in:
2005-08-16 17:48:47 +00:00
parent 7c539f8ebc
commit 43e329edb7
3 changed files with 11 additions and 3 deletions

View File

@@ -1417,7 +1417,9 @@ static void object_panel_deflectors(Object *ob)
uiDefButF(block, NUM, B_DIFF, "Inner:", 160,20,150,20, &pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness");
uiDefButF(block, NUM, B_DIFF, "Outer:", 160, 0,150,20, &pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness");
uiBlockBeginAlign(block);
/* seems to be working fine .. so we do use modifier stack by default .. code here rests for debugging
uiDefButBitS(block, TOG, PDEFLE_DEFORM , 0,"UMS or CRASH", 0,0,150,20, &pd->flag, 0, 0, 0, 0, "Let collision object move with armatures/lattices WARNING logical circles will CRASH");
*/
}
}
}
@@ -1464,7 +1466,9 @@ static void object_softbodies(Object *ob)
if(uiNewPanel(curarea, block, "Softbody", "Object", 640, 0, 318, 204)==0) return;
/* do not allow to combine with force fields */
if(ob->pd && ob->pd->deflect) {
/* if(ob->pd && ob->pd->deflect) { */
/* no reason for that any more BM */
if(0) {
uiDefBut(block, LABEL, 0, "Object has Deflection,", 10,160,300,20, NULL, 0.0, 0, 0, 0, "");
uiDefBut(block, LABEL, 0, "no Softbody possible", 10,140,300,20, NULL, 0.0, 0, 0, 0, "");
} else {