Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/layer.c
| Show First 20 Lines • Show All 1,269 Lines • ▼ Show 20 Lines | |||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /** \name BKE_view_layer_bases_in_mode_iterator | /** \name BKE_view_layer_bases_in_mode_iterator | ||||
| * \{ */ | * \{ */ | ||||
| static bool base_is_in_mode(struct ObjectsInModeIteratorData *data, Base *base) | static bool base_is_in_mode(struct ObjectsInModeIteratorData *data, Base *base) | ||||
| { | { | ||||
| return BASE_VISIBLE(data->v3d, base) && | return BASE_VISIBLE(data->v3d, base) && | ||||
| (base->object->type == data->object_type) && | (data->object_type == -1 || base->object->type == data->object_type) && | ||||
| (base->object->mode & data->object_mode) != 0; | (base->object->mode & data->object_mode) != 0; | ||||
| } | } | ||||
| void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in) | void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in) | ||||
| { | { | ||||
| struct ObjectsInModeIteratorData *data = data_in; | struct ObjectsInModeIteratorData *data = data_in; | ||||
| Base *base = data->base_active; | Base *base = data->base_active; | ||||
| /* when there are no objects */ | /* when there are no objects */ | ||||
| if (base == NULL) { | if (base == NULL) { | ||||
| iter->valid = false; | iter->valid = false; | ||||
| return; | return; | ||||
| } | } | ||||
| iter->data = data_in; | iter->data = data_in; | ||||
| iter->current = base; | iter->current = base; | ||||
| /* default type is active object type */ | |||||
| if (data->object_type < 0) { | |||||
| data->object_type = base->object->type; | |||||
| } | |||||
| if (!base_is_in_mode(data, base)) { | if (!base_is_in_mode(data, base)) { | ||||
| BKE_view_layer_bases_in_mode_iterator_next(iter); | BKE_view_layer_bases_in_mode_iterator_next(iter); | ||||
| } | } | ||||
| } | } | ||||
| void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter) | void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter) | ||||
| { | { | ||||
| struct ObjectsInModeIteratorData *data = iter->data; | struct ObjectsInModeIteratorData *data = iter->data; | ||||
| ▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines | |||||