diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-04-26 11:40:41 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-04-26 11:42:40 +0300 |
commit | f88e6763d64f7f79e13680082f30e06aea11fab0 (patch) | |
tree | d6e586a513f8c3a2cb37c251091374ccc601d81d /source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc | |
parent | 3dc6528cd45aa840e4a7782669f01e84671d0247 (diff) |
Depsgraph and selection: Flush selcol on Depsgraph
Selection code needs to iterate over DEG_OBJECT_ITER otherwise we won't
get modifiers, dupli objects, ...
Also make selection respect selectability flag.
Review by: Sergey Sharybin
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc index 3f9febc1228..db71dad5e5f 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc @@ -43,6 +43,7 @@ extern "C" { #include "BLI_utildefines.h" #include "DNA_node_types.h" +#include "DNA_layer_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" @@ -80,12 +81,14 @@ void DepsgraphNodeBuilder::build_scene(Main *bmain, Scene *scene) } /* scene objects */ - FOREACH_SCENE_OBJECT(scene, ob) - { - /* object itself */ - build_object(scene, ob); + int selection_color = 1; + for (SceneLayer *sl = (SceneLayer *)scene->render_layers.first; sl; sl = sl->next) { + for (Base *base = (Base *)sl->object_bases.first; base; base = base->next) { + /* object itself */ + build_object(scene, base->object); + base->selcol = selection_color++; + } } - FOREACH_SCENE_OBJECT_END /* rigidbody */ if (scene->rigidbody_world) { |