[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