diff options
author | Dalai Felinto <dalai@blender.org> | 2022-03-30 12:06:01 +0300 |
---|---|---|
committer | Dalai Felinto <dalai@blender.org> | 2022-03-30 12:06:01 +0300 |
commit | 218bcff32db55874ccc35300ddd21baa585350dd (patch) | |
tree | eb5a17aaf83f00693f7ec6300fd39485a299befd /source/blender/blenkernel/BKE_layer.h | |
parent | 0f94c99ee70edbd306747bdad18c02d867ecd053 (diff) |
Iterator to loop over objects based on a flag
Diffstat (limited to 'source/blender/blenkernel/BKE_layer.h')
-rw-r--r-- | source/blender/blenkernel/BKE_layer.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index 77a3223c064..c877035830c 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -436,15 +436,26 @@ void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter); IteratorBeginCb func_begin; \ IteratorCb func_next, func_end; \ void *data_in; \ - struct ObjectsVisibleIteratorData data_ = {NULL}; \ - data_.view_layer = _view_layer; \ - data_.v3d = _v3d; \ +\ + struct ObjectsVisibleIteratorData data_select_ = {NULL}; \ + data_select_.view_layer = _view_layer; \ + data_select_.v3d = _v3d; \ +\ + struct SceneObjectsIteratorExData data_flag_ = {NULL}; \ + data_flag_.scene = scene; \ + data_flag_.flag = flag; \ \ if (flag == SELECT) { \ func_begin = &BKE_view_layer_selected_objects_iterator_begin; \ func_next = &BKE_view_layer_selected_objects_iterator_next; \ func_end = &BKE_view_layer_selected_objects_iterator_end; \ - data_in = &data_; \ + data_in = &data_select_; \ + } \ + else if (flag != 0) { \ + func_begin = BKE_scene_objects_iterator_begin_ex; \ + func_next = BKE_scene_objects_iterator_next_ex; \ + func_end = BKE_scene_objects_iterator_end_ex; \ + data_in = &data_flag_; \ } \ else { \ func_begin = BKE_scene_objects_iterator_begin; \ |