Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/BKE_layer.h
| Show First 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | |||||
| void BKE_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | void BKE_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | ||||
| void BKE_selected_objects_iterator_next(BLI_Iterator *iter); | void BKE_selected_objects_iterator_next(BLI_Iterator *iter); | ||||
| void BKE_selected_objects_iterator_end(BLI_Iterator *iter); | void BKE_selected_objects_iterator_end(BLI_Iterator *iter); | ||||
| void BKE_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | void BKE_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | ||||
| void BKE_visible_objects_iterator_next(BLI_Iterator *iter); | void BKE_visible_objects_iterator_next(BLI_Iterator *iter); | ||||
| void BKE_visible_objects_iterator_end(BLI_Iterator *iter); | void BKE_visible_objects_iterator_end(BLI_Iterator *iter); | ||||
| struct ObjectsInModeIteratorData { | |||||
| int object_mode; | |||||
| struct ViewLayer *view_layer; | |||||
| struct Base *base_active; | |||||
| }; | |||||
| void BKE_renderable_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | void BKE_renderable_objects_iterator_begin(BLI_Iterator *iter, void *data_in); | ||||
| void BKE_renderable_objects_iterator_next(BLI_Iterator *iter); | void BKE_renderable_objects_iterator_next(BLI_Iterator *iter); | ||||
| void BKE_renderable_objects_iterator_end(BLI_Iterator *iter); | void BKE_renderable_objects_iterator_end(BLI_Iterator *iter); | ||||
| void BKE_view_layer_objects_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in); | |||||
| void BKE_view_layer_objects_in_mode_iterator_next(BLI_Iterator *iter); | |||||
| void BKE_view_layer_objects_in_mode_iterator_end(BLI_Iterator *iter); | |||||
| void BKE_selected_bases_iterator_begin(BLI_Iterator *iter, void *data_in); | void BKE_selected_bases_iterator_begin(BLI_Iterator *iter, void *data_in); | ||||
| void BKE_selected_bases_iterator_next(BLI_Iterator *iter); | void BKE_selected_bases_iterator_next(BLI_Iterator *iter); | ||||
| void BKE_selected_bases_iterator_end(BLI_Iterator *iter); | void BKE_selected_bases_iterator_end(BLI_Iterator *iter); | ||||
| void BKE_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in); | void BKE_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in); | ||||
| void BKE_visible_bases_iterator_next(BLI_Iterator *iter); | void BKE_visible_bases_iterator_next(BLI_Iterator *iter); | ||||
| void BKE_visible_bases_iterator_end(BLI_Iterator *iter); | void BKE_visible_bases_iterator_end(BLI_Iterator *iter); | ||||
| Show All 10 Lines | #define FOREACH_VISIBLE_OBJECT_BEGIN(view_layer, _instance) \ | ||||
| ITER_BEGIN(BKE_visible_objects_iterator_begin, \ | ITER_BEGIN(BKE_visible_objects_iterator_begin, \ | ||||
| BKE_visible_objects_iterator_next, \ | BKE_visible_objects_iterator_next, \ | ||||
| BKE_visible_objects_iterator_end, \ | BKE_visible_objects_iterator_end, \ | ||||
| view_layer, Object *, _instance) | view_layer, Object *, _instance) | ||||
| #define FOREACH_VISIBLE_OBJECT_END \ | #define FOREACH_VISIBLE_OBJECT_END \ | ||||
| ITER_END | ITER_END | ||||
| #define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _object_mode, _instance) \ | |||||
| { \ | |||||
| struct ObjectsInModeIteratorData data_ = { \ | |||||
| .object_mode = _object_mode, \ | |||||
| .view_layer = _view_layer, \ | |||||
| .base_active = _view_layer->basact, \ | |||||
| }; \ | |||||
| ITER_BEGIN(BKE_view_layer_objects_in_mode_iterator_begin, \ | |||||
| BKE_view_layer_objects_in_mode_iterator_next, \ | |||||
| BKE_view_layer_objects_in_mode_iterator_end, \ | |||||
| &data_, Base *, _instance) | |||||
| #define FOREACH_BASE_IN_MODE_END \ | |||||
| ITER_END; \ | |||||
| } ((void)0) | |||||
| #define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _instance) \ | |||||
| FOREACH_BASE_IN_MODE_BEGIN(_view_layer, OB_MODE_EDIT, _instance) | |||||
| #define FOREACH_BASE_IN_EDIT_MODE_END \ | |||||
| FOREACH_BASE_IN_MODE_END | |||||
| #define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _object_mode, _instance) \ | |||||
| FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _object_mode, _base) { \ | |||||
| Object *_instance = _base->object; | |||||
| #define FOREACH_OBJECT_IN_MODE_END \ | |||||
| } FOREACH_BASE_IN_MODE_END | |||||
| #define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_view_layer, _instance) \ | |||||
| FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _base) { \ | |||||
| Object *_instance = _base->object; | |||||
| #define FOREACH_OBJECT_IN_EDIT_MODE_END \ | |||||
| } FOREACH_BASE_IN_EDIT_MODE_END | |||||
| #define FOREACH_SELECTED_BASE_BEGIN(view_layer, _instance) \ | #define FOREACH_SELECTED_BASE_BEGIN(view_layer, _instance) \ | ||||
| ITER_BEGIN(BKE_selected_bases_iterator_begin, \ | ITER_BEGIN(BKE_selected_bases_iterator_begin, \ | ||||
| BKE_selected_bases_iterator_next, \ | BKE_selected_bases_iterator_next, \ | ||||
| BKE_selected_bases_iterator_end, \ | BKE_selected_bases_iterator_end, \ | ||||
| view_layer, Base *, _instance) | view_layer, Base *, _instance) | ||||
| #define FOREACH_SELECTED_BASE_END \ | #define FOREACH_SELECTED_BASE_END \ | ||||
| ITER_END | ITER_END | ||||
| ▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | ITER_BEGIN(BKE_renderable_objects_iterator_begin, \ | ||||
| BKE_renderable_objects_iterator_end, \ | BKE_renderable_objects_iterator_end, \ | ||||
| &data_, Object *, _instance) | &data_, Object *, _instance) | ||||
| #define FOREACH_OBJECT_RENDERABLE_END \ | #define FOREACH_OBJECT_RENDERABLE_END \ | ||||
| ITER_END; \ | ITER_END; \ | ||||
| } ((void)0) | } ((void)0) | ||||
| /* layer_utils.c */ | |||||
| struct ObjectsInModeParams { | |||||
| int object_mode; | |||||
| uint no_dupe_data : 1; | |||||
| bool (*filter_fn)(struct Object *ob, void *user_data); | |||||
| void *filter_userdata; | |||||
| }; | |||||
| Base **BKE_view_layer_array_from_bases_in_mode_params( | |||||
| struct ViewLayer *view_layer, uint *r_len, | |||||
| const struct ObjectsInModeParams *params); | |||||
| struct Object **BKE_view_layer_array_from_objects_in_mode_params( | |||||
| struct ViewLayer *view_layer, uint *len, | |||||
| const struct ObjectsInModeParams *params); | |||||
| #define BKE_view_layer_array_from_objects_in_mode(view_layer, r_len, ...) \ | |||||
| BKE_view_layer_array_from_objects_in_mode_params( \ | |||||
| view_layer, r_len, \ | |||||
| &(const struct ObjectsInModeParams){__VA_ARGS__}) | |||||
| #define BKE_view_layer_array_from_bases_in_edit_mode(view_layer, r_len, ...) \ | |||||
| BKE_view_layer_array_from_bases_in_mode_params( \ | |||||
| view_layer, r_len, \ | |||||
| &(const struct ObjectsInModeParams){ .object_mode = OB_MODE_EDIT, __VA_ARGS__}) | |||||
| #define BKE_view_layer_array_from_objects_in_edit_mode(view_layer, r_len, ...) \ | |||||
| BKE_view_layer_array_from_objects_in_mode_params( \ | |||||
| view_layer, r_len, \ | |||||
| &(const struct ObjectsInModeParams){ .object_mode = OB_MODE_EDIT, __VA_ARGS__}) | |||||
| bool BKE_view_layer_filter_edit_mesh_has_uvs(struct Object *ob, void *user_data); | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||
| #endif | #endif | ||||
| #endif /* __BKE_LAYER_H__ */ | #endif /* __BKE_LAYER_H__ */ | ||||