Change ITER_BEGIN to work in C++ (include object type in the macro)
This commit is contained in:
parent
0b473168cd
commit
ff4dc7abfa
|
@ -70,7 +70,7 @@ void BKE_scene_objects_Iterator_end(struct Iterator *iter);
|
|||
ITER_BEGIN(BKE_scene_collections_Iterator_begin, \
|
||||
BKE_scene_collections_Iterator_next, \
|
||||
BKE_scene_collections_Iterator_end, \
|
||||
scene, _sc)
|
||||
scene, SceneCollection, _sc)
|
||||
|
||||
#define FOREACH_SCENE_COLLECTION_END \
|
||||
ITER_END
|
||||
|
@ -79,7 +79,7 @@ void BKE_scene_objects_Iterator_end(struct Iterator *iter);
|
|||
ITER_BEGIN(BKE_scene_objects_Iterator_begin, \
|
||||
BKE_scene_objects_Iterator_next, \
|
||||
BKE_scene_objects_Iterator_end, \
|
||||
scene, _ob)
|
||||
scene, Object, _ob)
|
||||
|
||||
#define FOREACH_SCENE_OBJECT_END \
|
||||
ITER_END
|
||||
|
|
|
@ -138,7 +138,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
|
|||
ITER_BEGIN(BKE_selected_objects_Iterator_begin, \
|
||||
BKE_selected_objects_Iterator_next, \
|
||||
BKE_selected_objects_Iterator_end, \
|
||||
sl, _ob)
|
||||
sl, Object, _ob)
|
||||
|
||||
#define FOREACH_SELECTED_OBJECT_END \
|
||||
ITER_END
|
||||
|
@ -147,7 +147,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
|
|||
ITER_BEGIN(BKE_visible_objects_Iterator_begin, \
|
||||
BKE_visible_objects_Iterator_next, \
|
||||
BKE_visible_objects_Iterator_end, \
|
||||
sl, _ob)
|
||||
sl, Object, _ob)
|
||||
|
||||
#define FOREACH_VISIBLE_OBJECT_END \
|
||||
ITER_END
|
||||
|
@ -157,7 +157,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
|
|||
ITER_BEGIN(BKE_visible_bases_Iterator_begin, \
|
||||
BKE_visible_bases_Iterator_next, \
|
||||
BKE_visible_bases_Iterator_end, \
|
||||
sl, _object_base)
|
||||
sl, Base, _object_base)
|
||||
|
||||
#define FOREACH_VISIBLE_BASE_END \
|
||||
ITER_END
|
||||
|
@ -191,7 +191,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
|
|||
func_end = BKE_scene_objects_Iterator_end; \
|
||||
data_in = scene; \
|
||||
} \
|
||||
ITER_BEGIN(func_begin, func_next, func_end, data_in, _ob)
|
||||
ITER_BEGIN(func_begin, func_next, func_end, data_in, Object, _ob)
|
||||
|
||||
|
||||
#define FOREACH_OBJECT_FLAG_END \
|
||||
|
|
|
@ -36,7 +36,7 @@ typedef struct Iterator {
|
|||
typedef void (*IteratorCb)(Iterator *iter);
|
||||
typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
|
||||
|
||||
#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _data_out) \
|
||||
#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _data_out) \
|
||||
{ \
|
||||
IteratorCb callback_end_func = callback_end; \
|
||||
Iterator iter_macro; \
|
||||
|
@ -44,7 +44,7 @@ typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
|
|||
iter_macro.valid; \
|
||||
callback_next(&iter_macro)) \
|
||||
{ \
|
||||
_data_out = iter_macro.current;
|
||||
_data_out = (_type *) iter_macro.current;
|
||||
|
||||
#define ITER_END \
|
||||
} \
|
||||
|
|
Loading…
Reference in New Issue