[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14337] trunk/blender/source/blender: bug fix soft body can resume with point cache
Jens Ole Wund (bjornmose)
bjornmose at gmx.net
Sat Apr 5 23:29:18 CEST 2008
Revision: 14337
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14337
Author: bjornmose
Date: 2008-04-05 23:29:17 +0200 (Sat, 05 Apr 2008)
Log Message:
-----------
bug fix soft body can resume with point cache
sneak in .. springs preload
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/softbody.c
trunk/blender/source/blender/makesdna/DNA_object_force.h
trunk/blender/source/blender/src/buttons_object.c
Modified: trunk/blender/source/blender/blenkernel/intern/softbody.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/softbody.c 2008-04-05 14:49:41 UTC (rev 14336)
+++ trunk/blender/source/blender/blenkernel/intern/softbody.c 2008-04-05 21:29:17 UTC (rev 14337)
@@ -2751,6 +2751,10 @@
if (G.rt > 500){
scale = (G.rt - 500) / 100.0f;
}
+ /* public version shrink to fit */
+ if (sb->springpreload != 0 ){
+ scale = sb->springpreload / 100.0f;
+ }
for(a=0; a<sb->totspring; a++) {
BodySpring *bs = &sb->bspring[a];
bs->len= scale*VecLenf(sb->bpoint[bs->v1].origS, sb->bpoint[bs->v2].origS);
@@ -3268,6 +3272,9 @@
for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++)
fwrite(&bp->pos, sizeof(float), 3, fp);
+/*write velocities too */
+ for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++)
+ fwrite(&bp->vec, sizeof(float), 3, fp);
fclose(fp);
}
@@ -3282,6 +3289,7 @@
if(sb->totpoint == 0) return 0;
+
if(sb->particles)
stack_index = modifiers_indexInObject(ob,(ModifierData*)psys_get_modifier(ob,sb->particles));
else {
@@ -3302,8 +3310,14 @@
ret = 0;
break;
}
-
- fclose(fp);
+ /*read velocities too !*/
+ for(a=0, bp=sb->bpoint; a<sb->totpoint; a++, bp++){
+ if(fread(&bp->vec, sizeof(float), 3, fp) != 3) {
+ ret = 0;
+ break;
+ }
+ }
+ fclose(fp);
}
return ret;
Modified: trunk/blender/source/blender/makesdna/DNA_object_force.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_force.h 2008-04-05 14:49:41 UTC (rev 14336)
+++ trunk/blender/source/blender/makesdna/DNA_object_force.h 2008-04-05 21:29:17 UTC (rev 14337)
@@ -130,7 +130,7 @@
maxloops,
choke,
solver_ID,
- plastic,pad5
+ plastic,springpreload
;
struct SBScratch *scratch; /* scratch pad/cache on live time not saved in file */
Modified: trunk/blender/source/blender/src/buttons_object.c
===================================================================
--- trunk/blender/source/blender/src/buttons_object.c 2008-04-05 14:49:41 UTC (rev 14336)
+++ trunk/blender/source/blender/src/buttons_object.c 2008-04-05 21:29:17 UTC (rev 14337)
@@ -3985,9 +3985,10 @@
uiDefButBitS(block, TOG, OB_SB_QUADS, B_SOFTBODY_CHANGE, "Stiff Quads", 110,50,90,20, softflag, 0, 0, 0, 0, "Adds diagonal springs on 4-gons");
uiDefButBitS(block, TOG, OB_SB_EDGECOLL, B_DIFF, "CEdge", 220,50,45,20, softflag, 0, 0, 0, 0, "Edge collide too");
uiDefButBitS(block, TOG, OB_SB_FACECOLL, B_DIFF, "CFace", 265,50,45,20, softflag, 0, 0, 0, 0, "Faces collide too SLOOOOOW warning ");
- uiDefButF(block, NUM, B_DIFF, "E Pull:", 10,30,100,20, &sb->inspring, 0.0, 0.999, 10, 0, "Edge spring stiffness when longer than rest length");
- uiDefButF(block, NUM, B_DIFF, "E Push:", 110,30,100,20, &sb->inpush, 0.0, 0.999, 10, 0, "Edge spring stiffness when shorter than rest length");
- uiDefButF(block, NUM, B_DIFF, "E Damp:", 210,30,100,20, &sb->infrict, 0.0, 50.0, 10, 0, "Edge spring friction");
+ uiDefButF(block, NUM, B_DIFF, "Pull:", 10,30,75,20, &sb->inspring, 0.0, 0.999, 10, 0, "Edge spring stiffness when longer than rest length");
+ uiDefButF(block, NUM, B_DIFF, "Push:", 85,30,75,20, &sb->inpush, 0.0, 0.999, 10, 0, "Edge spring stiffness when shorter than rest length");
+ uiDefButF(block, NUM, B_DIFF, "Damp:", 160,30,70,20, &sb->infrict, 0.0, 50.0, 10, 0, "Edge spring friction");
+ uiDefButS(block, NUM, B_SOFTBODY_CHANGE, "SL:",250 ,30,60,20, &sb->springpreload, 0.0, 200.0, 10, 0, "Alter spring lenght to shrink/blow up (unit %) 0 to disable ");
uiDefButBitS(block, TOG,OB_SB_AERO_ANGLE,B_SOFTBODY_CHANGE, "N",10,10,20,20, softflag, 0, 0, 0, 0, "New aero(uses angle and length)");
uiDefButS(block, NUM, B_DIFF, "Aero:", 30,10,60,20, &sb->aeroedge, 0.00, 30000.0, 10, 0, "Make edges 'sail'");
More information about the Bf-blender-cvs
mailing list