[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11617] branches/particles/source/blender: *bugs fixed
Janne Karhu
jhkarh at utu.fi
Wed Aug 15 17:36:24 CEST 2007
Revision: 11617
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11617
Author: jhk
Date: 2007-08-15 17:36:24 +0200 (Wed, 15 Aug 2007)
Log Message:
-----------
*bugs fixed
-soft body baked itself twice
-baked soft body didn't allow freeing the bake
-local soft body displayed incorrect path positions in bake mode
*new things
-outliner shows hair soft body below it's particle system
Modified Paths:
--------------
branches/particles/source/blender/blenkernel/intern/dynamics_bake.c
branches/particles/source/blender/src/buttons_object.c
branches/particles/source/blender/src/outliner.c
branches/particles/source/blender/src/space.c
Modified: branches/particles/source/blender/blenkernel/intern/dynamics_bake.c
===================================================================
--- branches/particles/source/blender/blenkernel/intern/dynamics_bake.c 2007-08-15 10:38:46 UTC (rev 11616)
+++ branches/particles/source/blender/blenkernel/intern/dynamics_bake.c 2007-08-15 15:36:24 UTC (rev 11617)
@@ -1307,8 +1307,10 @@
bsys->totbel=sb->totpoint;
- if(sb->local)
+ if(sb->local){
Mat4Invert(ob->imat,ob->obmat);
+ bsys->key_space=BSYS_SPACE_OBJECT;
+ }
return 1;
}
Modified: branches/particles/source/blender/src/buttons_object.c
===================================================================
--- branches/particles/source/blender/src/buttons_object.c 2007-08-15 10:38:46 UTC (rev 11616)
+++ branches/particles/source/blender/src/buttons_object.c 2007-08-15 15:36:24 UTC (rev 11617)
@@ -1811,133 +1811,133 @@
allqueue (REDRAWBUTSOBJECT, 0);
}
-void softbody_bake(Object *ob)
-{
- ListBase bakelist;
- BakeableSystem *bsys;
+//void softbody_bake(Object *ob)
+//{
+// ListBase bakelist;
+// BakeableSystem *bsys;
+//
+// bakelist.first=bakelist.last=0;
+//
+// bsys = DB_find_bsys(&ob->bakeable,ob->soft);
+//
+// BLI_addtail(&bakelist,bsys);
+//
+// DB_unified_bake(&bakelist,0,0);
+//
+// //Base *base;
+// //SoftBody *sb;
+// //ScrArea *sa;
+// //float frameleno= G.scene->r.framelen;
+// //int cfrao= CFRA, sfra=100000, efra=0, didbreak =0, psys_bake=0;
+// //
+// //
+// //G.scene->r.framelen= 1.0; // baking has to be in uncorrected time
+// //sbSetInterruptCallBack(blender_test_break); // make softbody module ESC aware
+// //G.afbreek=0; // init global break system
+// //
+// //if(ob) {
+// // //ParticleSystem *psys=psys_get_current(ob);
+// // sb= ob->soft;
+// //
+// // //if(ob->partact <= ob->totpart && ob->totpart){
+// // // ParticleSystem *psys=ob->particleSystem[ob->partact-1];
+// // //if(psys && psys->flag&PSYS_BAKED && psys->bakespace && psys->flag&PSYS_ENABLED){
+// // // if(psys->softflag&OB_SB_ENABLE && ob->softflag&OB_SB_PSYS_UI){
+// // // psys->softflag |= OB_SB_BAKEDO;
+// // // psys->flag |= PSYS_SOFT_BAKE;
+// // // sb=psys->soft;
+// // // psys_bake=1;
+// // // }
+// // //}
+// // //}
+// //
+// // sfra= MIN2(sfra, sb->sfra);
+// // efra= MAX2(efra, sb->efra);
+// // if(psys_bake==0){
+// // sbObjectToSoftbody(ob); // put softbody in restposition, free bake
+// // ob->softflag |= OB_SB_BAKEDO;
+// // }
+// //}
+// //else {
+// // for(base=G.scene->base.first; base; base= base->next) {
+// // if(TESTBASELIB(base)) {
+// // if(base->object->soft) {
+// // sb= base->object->soft;
+// // sfra= MIN2(sfra, sb->sfra);
+// // efra= MAX2(efra, sb->efra);
+// // sbObjectToSoftbody(base->object); // put softbody in restposition, free bake
+// // base->object->softflag |= OB_SB_BAKEDO;
+// // }
+// // }
+// // }
+// //}
+// //
+// //CFRA= sfra;
+// //update_for_newframe_muted(); // put everything on this frame
+// //
+// //curarea->win_swap= 0; // clean swapbuffers
+// //
+// //for(; CFRA <= efra; CFRA++) {
+// // set_timecursor(CFRA);
+// //
+// // update_for_newframe_muted();
+// //
+// // for(sa= G.curscreen->areabase.first; sa; sa= sa->next) {
+// // if(sa->spacetype == SPACE_VIEW3D) {
+// // scrarea_do_windraw(sa);
+// // }
+// // }
+// // screen_swapbuffers();
+// // //blender_test_break() has a granularity of 10 ms, who cares .. baking the unit cube is kinda boring
+// // if (blender_test_break()){
+// // didbreak = 1;
+// // break;
+// // }
+//
+// //}
+// //if((didbreak)&&(G.qual!=LR_SHIFTKEY)) {
+// // if(ob){
+// // if(psys_bake)
+// // ob->particleSystem[ob->partact-1]->flag |= PSYS_SOFT_BAKE;
+// // else
+// // sbObjectToSoftbody(ob); // free bake
+// // }
+// // else {
+// // for(base=G.scene->base.first; base; base= base->next) {
+// // if(TESTBASELIB(base)) {
+// // if(base->object->soft) {
+// // sbObjectToSoftbody(base->object); // free bake
+// // }
+// // }
+// // }
+// // }
+// //}
+// //
+// ///* restore */
+// //waitcursor(0);
+// //sbSetInterruptCallBack(NULL); // softbody module won't ESC
+// //G.afbreek=0; // reset global break system
+// //
+// //if(ob){
+// // if(psys_bake)
+// // ob->particleSystem[ob->partact-1]->softflag &= ~OB_SB_BAKEDO;
+// // else
+// // ob->softflag &= ~OB_SB_BAKEDO;
+// //}
+// //else {
+// // for(base=G.scene->base.first; base; base= base->next)
+// // if(TESTBASELIB(base))
+// // if(base->object->soft)
+// // base->object->softflag &= ~OB_SB_BAKEDO;
+// //}
+// //
+// //CFRA= cfrao;
+// //G.scene->r.framelen= frameleno;
+// //update_for_newframe_muted();
+// //allqueue(REDRAWVIEW3D, 0);
+// //allqueue(REDRAWBUTSOBJECT, 0);
+//}
- bakelist.first=bakelist.last=0;
-
- bsys = DB_find_bsys(&ob->bakeable,ob->soft);
-
- BLI_addtail(&bakelist,bsys);
-
- DB_unified_bake(&bakelist,0,0);
-
- //Base *base;
- //SoftBody *sb;
- //ScrArea *sa;
- //float frameleno= G.scene->r.framelen;
- //int cfrao= CFRA, sfra=100000, efra=0, didbreak =0, psys_bake=0;
- //
- //
- //G.scene->r.framelen= 1.0; // baking has to be in uncorrected time
- //sbSetInterruptCallBack(blender_test_break); // make softbody module ESC aware
- //G.afbreek=0; // init global break system
- //
- //if(ob) {
- // //ParticleSystem *psys=psys_get_current(ob);
- // sb= ob->soft;
- //
- // //if(ob->partact <= ob->totpart && ob->totpart){
- // // ParticleSystem *psys=ob->particleSystem[ob->partact-1];
- // //if(psys && psys->flag&PSYS_BAKED && psys->bakespace && psys->flag&PSYS_ENABLED){
- // // if(psys->softflag&OB_SB_ENABLE && ob->softflag&OB_SB_PSYS_UI){
- // // psys->softflag |= OB_SB_BAKEDO;
- // // psys->flag |= PSYS_SOFT_BAKE;
- // // sb=psys->soft;
- // // psys_bake=1;
- // // }
- // //}
- // //}
- //
- // sfra= MIN2(sfra, sb->sfra);
- // efra= MAX2(efra, sb->efra);
- // if(psys_bake==0){
- // sbObjectToSoftbody(ob); // put softbody in restposition, free bake
- // ob->softflag |= OB_SB_BAKEDO;
- // }
- //}
- //else {
- // for(base=G.scene->base.first; base; base= base->next) {
- // if(TESTBASELIB(base)) {
- // if(base->object->soft) {
- // sb= base->object->soft;
- // sfra= MIN2(sfra, sb->sfra);
- // efra= MAX2(efra, sb->efra);
- // sbObjectToSoftbody(base->object); // put softbody in restposition, free bake
- // base->object->softflag |= OB_SB_BAKEDO;
- // }
- // }
- // }
- //}
- //
- //CFRA= sfra;
- //update_for_newframe_muted(); // put everything on this frame
- //
- //curarea->win_swap= 0; // clean swapbuffers
- //
- //for(; CFRA <= efra; CFRA++) {
- // set_timecursor(CFRA);
- //
- // update_for_newframe_muted();
- //
- // for(sa= G.curscreen->areabase.first; sa; sa= sa->next) {
- // if(sa->spacetype == SPACE_VIEW3D) {
- // scrarea_do_windraw(sa);
- // }
- // }
- // screen_swapbuffers();
- // //blender_test_break() has a granularity of 10 ms, who cares .. baking the unit cube is kinda boring
- // if (blender_test_break()){
- // didbreak = 1;
- // break;
- // }
-
- //}
- //if((didbreak)&&(G.qual!=LR_SHIFTKEY)) {
- // if(ob){
- // if(psys_bake)
- // ob->particleSystem[ob->partact-1]->flag |= PSYS_SOFT_BAKE;
- // else
- // sbObjectToSoftbody(ob); // free bake
- // }
- // else {
- // for(base=G.scene->base.first; base; base= base->next) {
- // if(TESTBASELIB(base)) {
- // if(base->object->soft) {
- // sbObjectToSoftbody(base->object); // free bake
- // }
- // }
- // }
- // }
- //}
- //
- ///* restore */
- //waitcursor(0);
- //sbSetInterruptCallBack(NULL); // softbody module won't ESC
- //G.afbreek=0; // reset global break system
- //
- //if(ob){
- // if(psys_bake)
- // ob->particleSystem[ob->partact-1]->softflag &= ~OB_SB_BAKEDO;
- // else
- // ob->softflag &= ~OB_SB_BAKEDO;
- //}
- //else {
- // for(base=G.scene->base.first; base; base= base->next)
- // if(TESTBASELIB(base))
- // if(base->object->soft)
- // base->object->softflag &= ~OB_SB_BAKEDO;
- //}
- //
- //CFRA= cfrao;
- //G.scene->r.framelen= frameleno;
- //update_for_newframe_muted();
- //allqueue(REDRAWVIEW3D, 0);
- //allqueue(REDRAWBUTSOBJECT, 0);
-}
-
// store processed path & file prefix for fluidsim bake directory
void fluidsimFilesel(char *selection)
{
@@ -1992,122 +1992,6 @@
}
}
-//void particle_system_bake(Object *ob, int psys_nr, int automatic)
-//{
-// ListBase bakelist;
-// BakeableSystem *bsys;
-//
-// bakelist.first=bakelist.last=0;
-//
-// bsys = DB_find_bsys(&ob->bakeable,ob->particleSystem[psys_nr]);
-//
-// BLI_addtail(&bakelist,bsys);
-//
-// DB_unified_bake(&bakelist,0);
-//
-// //Base *base;
-// //ScrArea *sa;
-// //ParticleSystem *psys;
-// //Object *psysob= ob;
-// //ParticleSettings *part;
-// //float frameleno= G.scene->r.framelen, cfra;
-// //int cfrao= CFRA, sfra=100000, efra=0;
-// //unsigned short event=0;
-// //short val;
-// //
-// //G.scene->r.framelen= 1.0; // baking has to be in uncorrected time
-// //
-// //psys=psysob->particleSystem[psys_nr];
-// //part=psys->part;
-//
-// //if(psys->flag&PSYS_EDITED && automatic) return;
-//
-// //if(part->type==PART_REACTOR){
-// // if(psys->target_ob)
-// // sfra=psys->target_ob->particleSystem[psys->target_psys-1]->part->sta;
-// // else
-// // sfra=psysob->particleSystem[psys->target_psys-1]->part->sta;
-// //}
-// //else{
-// // sfra= MIN2(sfra, part->sta);
-// //}
-// //efra= MAX2(efra, part->end)+part->lifetime;
-//
-// ///* to have negative dtime first time -> reset all particles */
-// //psys->cfra=part->sta + 1;
-//
-// //psys_free_bake(psys);
-//
-// //psys->flag |= PSYS_BAKING;
-//
-// //if(psys->bakespace){
-// // particle_system_update(ob,psys);
-// //}
-// //else{
-// // CFRA= sfra;
-// // scene_update_for_newframe(G.scene, screen_view3d_layers());
-// //
-// // curarea->win_swap= 0; // clean swapbuffers
-// //
-// // //if(automatic==0)
-// // //start_progress_bar();
-//
-// // while((psys->flag & PSYS_BAKED)==0){
-// // if(automatic==0)
-// // set_timecursor(CFRA);
-//
-// // psysob->recalc|=OB_RECALC_DATA;
-// // DAG_object_update_flags(G.scene,psysob,screen_view3d_layers());
-//
-// // for(base= G.scene->base.first; base; base= base->next) {
-// // ob= base->object;
-// //
-// // object_handle_update(ob); // bke_object.h
-// //
-// // /* only update layer when an ipo */
-// // if(ob->ipo && has_ipo_code(ob->ipo, OB_LAY) ) {
-// // base->lay= ob->lay;
-// // }
-// // }
-// // //scene_update_for_newframe(G.scene, screen_view3d_layers());
-//
-// // //if(automatic==0)
-// // //progress_bar(((float)(CFRA)-(float)sfra)/((float)(efra)),"Baking Particles");
-// // //
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list