[Bf-blender-cvs] [b755c3e] soc-2016-layer_manager: Merge branch 'master' into soc-2016-layer_manager

Julian Eisel noreply at git.blender.org
Fri Aug 19 23:32:13 CEST 2016


Commit: b755c3ea9fa82ade59396c4777b6d373768f5530
Author: Julian Eisel
Date:   Fri Aug 19 23:31:57 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rBb755c3ea9fa82ade59396c4777b6d373768f5530

Merge branch 'master' into soc-2016-layer_manager

Conflicts:
	source/blender/blenkernel/intern/depsgraph.c
	source/blender/blenkernel/intern/object_dupli.c
	source/blender/blenloader/intern/versioning_270.c
	source/blender/modifiers/intern/MOD_cloth.c
	source/blender/modifiers/intern/MOD_dynamicpaint.c
	source/blender/modifiers/intern/MOD_smoke.c

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/effect.c
index e925976,7e6897a..c85cdc5
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@@ -203,11 -207,12 +208,11 @@@ static void add_particles_to_effectors(
  
  /* returns ListBase handle with objects taking part in the effecting */
  ListBase *pdInitEffectors(Scene *scene, Object *ob_src, ParticleSystem *psys_src,
-                           EffectorWeights *weights, bool precalc)
+                           EffectorWeights *weights, bool for_simulation)
  {
 -	Base *base;
  	unsigned int layer= ob_src->lay;
  	ListBase *effectors = NULL;
 -	
 +
  	if (weights->group) {
  		GroupObject *go;
  		
@@@ -226,11 -231,10 +231,11 @@@
  		}
  	}
  	else {
 -		for (base = scene->base.first; base; base= base->next) {
 +		BKE_BASES_ITER_START(scene, base)
 +		{
  			if ( (base->lay & layer) ) {
  				if ( base->object->pd && base->object->pd->forcefield )
- 					add_object_to_effectors(&effectors, scene, weights, base->object, ob_src);
+ 					add_object_to_effectors(&effectors, scene, weights, base->object, ob_src, for_simulation);
  
  				if ( base->object->particlesystem.first ) {
  					ParticleSystem *psys= base->object->particlesystem.first;
@@@ -240,10 -244,9 +245,10 @@@
  				}
  			}
  		}
 +		BKE_BASES_ITER_END;
  	}
  	
- 	if (precalc)
+ 	if (for_simulation)
  		pdPrecalculateEffectors(effectors);
  	
  	return effectors;
diff --cc source/blender/blenkernel/intern/object_dupli.c
index 642dfff,14cc5ec..a9c9a4c
--- a/source/blender/blenkernel/intern/object_dupli.c
+++ b/source/blender/blenkernel/intern/object_dupli.c
@@@ -237,8 -240,9 +241,9 @@@ static void make_child_duplis(const Dup
  	}
  	else {
  		unsigned int lay = ctx->scene->lay;
+ 		int baseid = 0;
 -		Base *base;
 -		for (base = ctx->scene->base.first; base; base = base->next, baseid++) {
 +		BKE_BASES_ITER_START(ctx->scene, base)
 +		{
  			Object *ob = base->object;
  
  			if ((base->lay & lay) && ob != obedit && is_child(ob, parent)) {
@@@ -246,10 -253,9 +254,11 @@@
  				if (ob->type != OB_MBALL)
  					ob->flag |= OB_DONE;  /* doesnt render */
  
- 				make_child_duplis_cb(ctx, userdata, ob);
+ 				make_child_duplis_cb(&pctx, userdata, ob);
  			}
++			baseid++;
  		}
 +		BKE_BASES_ITER_END;
  	}
  }
  
diff --cc source/blender/blenloader/intern/versioning_270.c
index 27e0714,f6ac42c..af455e2
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -1323,21 -1342,41 +1344,59 @@@ void blo_do_versions_270(FileData *fd, 
  		/* ------- end of grease pencil initialization --------------- */
  	}
  
+ 	{
+ 		if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingTrack", "float", "weight_stab")) {
+ 			MovieClip *clip;
+ 			for (clip = main->movieclip.first; clip; clip = clip->id.next) {
+ 				MovieTracking *tracking = &clip->tracking;
+ 				MovieTrackingObject *tracking_object;
+ 				for (tracking_object = tracking->objects.first;
+ 				     tracking_object != NULL;
+ 				     tracking_object = tracking_object->next)
+ 				{
+ 					ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, tracking_object);
+ 					MovieTrackingTrack *track;
+ 					for (track = tracksbase->first;
+ 					     track != NULL;
+ 					     track = track->next)
+ 					{
+ 						track->weight_stab = track->weight;
+ 					}
+ 				}
+ 			}
+ 		}
+ 
+ 		if (!DNA_struct_elem_find(fd->filesdna, "MovieTrackingStabilization", "int", "tot_rot_track")) {
+ 			MovieClip *clip;
+ 			for (clip = main->movieclip.first; clip != NULL; clip = clip->id.next) {
+ 				if (clip->tracking.stabilization.rot_track) {
+ 					migrate_single_rot_stabilization_track_settings(&clip->tracking.stabilization);
+ 					if (!clip->tracking.stabilization.scale) {
+ 						/* ensure init.
+ 						 * Was previously used for autoscale only,
+ 						 * now used always (as "target scale") */
+ 						clip->tracking.stabilization.scale = 1.0f;
+ 					}
+ 				}
+ 			}
+ 		}
+ 	}
++
 +	/* Convert to new layer system */
 +	if (!MAIN_VERSION_ATLEAST(main, 277, 4)) {
 +		if (!DNA_struct_elem_find(fd->filesdna, "Scene", "LayerTree", "*object_layers")) {
 +			for (Scene *sce = main->scene.first; sce; sce = sce->id.next) {
 +				sce->object_layers = BKE_objectlayer_tree_new();
 +
 +				BKE_objectlayer_base_entries_reserve(sce->object_layers->active_layer, BLI_listbase_count(&sce->base));
 +				/* For now, simply create a new layer and move all objects into it */
 +				for (Base *base = sce->base.first, *base_next; base; base = base_next) {
 +					base_next = base->next;
 +					BKE_objectlayer_base_assign_ex(base, sce->object_layers->active_layer, true, false);
 +					base->prev = base->next = NULL;
 +				}
 +				BLI_listbase_clear(&sce->base);
 +			}
 +		}
 +	}
  }




More information about the Bf-blender-cvs mailing list