[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