Cleanup: rename object base flags to be more clear.

This commit is contained in:
Brecht Van Lommel 2018-06-25 13:50:11 +02:00
parent a99dcab148
commit 817bf582c2
40 changed files with 114 additions and 117 deletions

View File

@ -158,7 +158,7 @@ static bool export_object(const ExportSettings * const settings, const Base * co
return false;
}
// FIXME Sybren: handle these cleanly (maybe just remove code), now using active scene layer instead.
if (settings->visible_layers_only && (ob_base->flag & BASE_VISIBLED) == 0) {
if (settings->visible_layers_only && (ob_base->flag & BASE_VISIBLE) == 0) {
return false;
}
}

View File

@ -141,7 +141,7 @@ void BKE_scene_objects_callback(struct Scene *scene, BKE_scene_objects_Cb callba
#define FOREACH_COLLECTION_VISIBLE_OBJECT_RECURSIVE_BEGIN(_collection, _object, _mode) \
{ \
int _base_flag = (_mode == DAG_EVAL_VIEWPORT) ? \
BASE_VISIBLE_VIEWPORT : BASE_VISIBLE_RENDER; \
BASE_ENABLED_VIEWPORT : BASE_ENABLED_RENDER; \
int _base_id = 0; \
for (Base *_base = (Base*)BKE_collection_object_cache_get(_collection).first; \
_base; \

View File

@ -317,13 +317,13 @@ static void collection_object_cache_fill(ListBase *lb, Collection *collection, i
if (((child_restrict & COLLECTION_RESTRICT_VIEW) == 0) &&
((object_restrict & OB_RESTRICT_VIEW) == 0))
{
base->flag |= BASE_VISIBLE_VIEWPORT;
base->flag |= BASE_ENABLED_VIEWPORT;
}
if (((child_restrict & COLLECTION_RESTRICT_RENDER) == 0) &&
((object_restrict & OB_RESTRICT_RENDER) == 0))
{
base->flag |= BASE_VISIBLE_RENDER;
base->flag |= BASE_ENABLED_RENDER;
}
}
@ -903,7 +903,7 @@ static bool collection_objects_select(ViewLayer *view_layer, Collection *collect
}
}
else {
if ((base->flag & BASE_SELECTABLED) && !(base->flag & BASE_SELECTED)) {
if ((base->flag & BASE_SELECTABLE) && !(base->flag & BASE_SELECTED)) {
base->flag |= BASE_SELECTED;
changed = true;
}

View File

@ -535,7 +535,7 @@ ListBase *BKE_collision_relations_create(Depsgraph *depsgraph, Collection *colle
Base *base;
/* add objects in same layer in scene */
for (SETLOOPER(scene, sce_iter, base)) {
if ((base->flag & BASE_VISIBLED) != 0) {
if ((base->flag & BASE_VISIBLE) != 0) {
add_collision_object(relations, base->object, level, modifier_type);
}
}

View File

@ -335,7 +335,7 @@ void BKE_view_layer_base_deselect_all(ViewLayer *view_layer)
void BKE_view_layer_base_select(struct ViewLayer *view_layer, Base *selbase)
{
view_layer->basact = selbase;
if ((selbase->flag & BASE_SELECTABLED) != 0) {
if ((selbase->flag & BASE_SELECTABLE) != 0) {
selbase->flag |= BASE_SELECTED;
}
}
@ -659,12 +659,12 @@ static int layer_collection_sync(
if (((child_restrict & COLLECTION_RESTRICT_VIEW) == 0) &&
((object_restrict & OB_RESTRICT_VIEW) == 0))
{
base->flag |= BASE_VISIBLED | BASE_VISIBLE_VIEWPORT;
base->flag |= BASE_VISIBLE | BASE_ENABLED | BASE_ENABLED_VIEWPORT;
if (((child_restrict & COLLECTION_RESTRICT_SELECT) == 0) &&
((object_restrict & OB_RESTRICT_SELECT) == 0))
{
base->flag |= BASE_SELECTABLED;
base->flag |= BASE_SELECTABLE;
}
}
@ -672,18 +672,18 @@ static int layer_collection_sync(
((object_restrict & OB_RESTRICT_RENDER) == 0))
{
base->flag |= BASE_VISIBLE_RENDER;
base->flag |= BASE_ENABLED_RENDER;
}
/* Update runtime flags used for display and tools. */
if (base->flag & BASE_VISIBLED) {
if (base->flag & BASE_VISIBLE) {
lc->runtime_flag |= LAYER_COLLECTION_HAS_ENABLED_OBJECTS;
}
if (base->flag & BASE_HIDE) {
if (base->flag & BASE_HIDDEN) {
view_layer->runtime_flag |= VIEW_LAYER_HAS_HIDE;
}
else if (base->flag & BASE_VISIBLED) {
else if (base->flag & BASE_VISIBLE) {
lc->runtime_flag |= LAYER_COLLECTION_HAS_VISIBLE_OBJECTS;
}
@ -722,7 +722,7 @@ void BKE_layer_collection_sync(const Scene *scene, ViewLayer *view_layer)
/* Clear visible and selectable flags to be reset. */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
base->flag &= ~(BASE_VISIBLED | BASE_SELECTABLED | BASE_VISIBLE_VIEWPORT | BASE_VISIBLE_RENDER);
base->flag &= ~(BASE_VISIBLE | BASE_ENABLED | BASE_SELECTABLE | BASE_ENABLED_VIEWPORT | BASE_ENABLED_RENDER);
}
view_layer->runtime_flag = 0;
@ -832,7 +832,7 @@ bool BKE_layer_collection_objects_select(ViewLayer *view_layer, LayerCollection
}
}
else {
if ((base->flag & BASE_SELECTABLED) && !(base->flag & BASE_SELECTED)) {
if ((base->flag & BASE_SELECTABLE) && !(base->flag & BASE_SELECTED)) {
base->flag |= BASE_SELECTED;
changed = true;
}
@ -875,32 +875,20 @@ bool BKE_layer_collection_has_selected_objects(ViewLayer *view_layer, LayerColle
/* ---------------------------------------------------------------------- */
/* Test base visibility when BASE_VISIBLED has not been set yet. */
static bool base_is_visible(Base *base, eEvaluationMode mode)
{
if (mode == DAG_EVAL_VIEWPORT) {
return ((base->flag & BASE_VISIBLE_VIEWPORT) != 0) &&
((base->flag & BASE_HIDE) == 0);
}
else {
return ((base->flag & BASE_VISIBLE_RENDER) != 0);
}
}
/* Update after toggling visibility of an object base. */
void BKE_base_set_visible(Scene *scene, ViewLayer *view_layer, Base *base, bool extend)
{
if (!extend) {
/* Make only one base visible. */
for (Base *other = view_layer->object_bases.first; other; other = other->next) {
other->flag |= BASE_HIDE;
other->flag |= BASE_HIDDEN;
}
base->flag &= ~BASE_HIDE;
base->flag &= ~BASE_HIDDEN;
}
else {
/* Toggle visibility of one base. */
base->flag ^= BASE_HIDE;
base->flag ^= BASE_HIDDEN;
}
BKE_layer_collection_sync(scene, view_layer);
@ -911,7 +899,7 @@ void BKE_layer_collection_set_visible(Scene *scene, ViewLayer *view_layer, Layer
if (!extend) {
/* Make only objects from one collection visible. */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
base->flag |= BASE_HIDE;
base->flag |= BASE_HIDDEN;
}
FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN(lc->collection, ob)
@ -919,7 +907,7 @@ void BKE_layer_collection_set_visible(Scene *scene, ViewLayer *view_layer, Layer
Base *base = BLI_ghash_lookup(view_layer->object_bases_hash, ob);
if (base) {
base->flag &= ~BASE_HIDE;
base->flag &= ~BASE_HIDDEN;
}
}
FOREACH_COLLECTION_OBJECT_RECURSIVE_END;
@ -936,10 +924,10 @@ void BKE_layer_collection_set_visible(Scene *scene, ViewLayer *view_layer, Layer
if (base) {
if (hide) {
base->flag |= BASE_HIDE;
base->flag |= BASE_HIDDEN;
}
else {
base->flag &= ~BASE_HIDE;
base->flag &= ~BASE_HIDDEN;
}
}
}
@ -1130,12 +1118,12 @@ void BKE_view_layer_selected_objects_iterator_end(BLI_Iterator *UNUSED(iter))
void BKE_view_layer_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
{
objects_iterator_begin(iter, data_in, BASE_VISIBLED);
objects_iterator_begin(iter, data_in, BASE_VISIBLE);
}
void BKE_view_layer_visible_objects_iterator_next(BLI_Iterator *iter)
{
objects_iterator_next(iter, BASE_VISIBLED);
objects_iterator_next(iter, BASE_VISIBLE);
}
void BKE_view_layer_visible_objects_iterator_end(BLI_Iterator *UNUSED(iter))
@ -1206,12 +1194,12 @@ void BKE_view_layer_selected_bases_iterator_end(BLI_Iterator *UNUSED(iter))
void BKE_view_layer_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
{
object_bases_iterator_begin(iter, data_in, BASE_VISIBLED);
object_bases_iterator_begin(iter, data_in, BASE_VISIBLE);
}
void BKE_view_layer_visible_bases_iterator_next(BLI_Iterator *iter)
{
object_bases_iterator_next(iter, BASE_VISIBLED);
object_bases_iterator_next(iter, BASE_VISIBLE);
}
void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *UNUSED(iter))
@ -1269,7 +1257,7 @@ void BKE_view_layer_renderable_objects_iterator_next(BLI_Iterator *iter)
if (ob->id.flag & LIB_TAG_DOIT) {
ob->id.flag &= ~LIB_TAG_DOIT;
if ((base->flag & BASE_VISIBLED) != 0) {
if ((base->flag & BASE_VISIBLE) != 0) {
iter->skip = false;
iter->current = ob;
}
@ -1377,6 +1365,7 @@ void BKE_layer_eval_view_layer(
/* Visibility based on depsgraph mode. */
const eEvaluationMode mode = DEG_get_mode(depsgraph);
const int base_flag = (mode == DAG_EVAL_VIEWPORT) ? BASE_ENABLED_VIEWPORT : BASE_ENABLED_RENDER;
/* Create array of bases, for fast index-based lookup. */
const int num_object_bases = BLI_listbase_count(&view_layer->object_bases);
@ -1385,16 +1374,20 @@ void BKE_layer_eval_view_layer(
num_object_bases, sizeof(Base *), "view_layer->object_bases_array");
int base_index = 0;
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
/* Set visibility. */
if (base_is_visible(base, mode)) {
base->flag |= BASE_VISIBLED;
/* Compute visibility for depsgraph evaluation mode. */
if (base->flag & base_flag) {
base->flag |= BASE_ENABLED | BASE_VISIBLE;
if (mode == DAG_EVAL_VIEWPORT && (base->flag & BASE_HIDDEN)) {
base->flag &= ~BASE_VISIBLE;
}
}
else {
base->flag &= ~(BASE_VISIBLED | BASE_SELECTABLED);
base->flag &= ~(BASE_ENABLED | BASE_VISIBLE | BASE_SELECTABLE);
}
/* If base is not selectabled, clear select. */
if ((base->flag & BASE_SELECTABLED) == 0) {
if ((base->flag & BASE_SELECTABLE) == 0) {
base->flag &= ~BASE_SELECTED;
}

View File

@ -600,7 +600,7 @@ bool BKE_object_is_mode_compat(const struct Object *ob, eObjectMode object_mode)
*/
bool BKE_object_is_visible(Object *ob, const eObjectVisibilityCheck mode)
{
if ((ob->base_flag & BASE_VISIBLED) == 0) {
if ((ob->base_flag & BASE_VISIBLE) == 0) {
return false;
}

View File

@ -401,7 +401,7 @@ void BKE_object_eval_flush_base_flags(Depsgraph *depsgraph,
object->base_flag = base->flag;
if (is_from_set) {
object->base_flag |= BASE_FROM_SET;
object->base_flag &= ~(BASE_SELECTED | BASE_SELECTABLED);
object->base_flag &= ~(BASE_SELECTED | BASE_SELECTABLE);
}
/* Copy to original object datablock if needed. */

View File

@ -1563,7 +1563,7 @@ void BKE_scene_object_base_flag_sync_from_object(Base *base)
if ((ob->flag & SELECT) != 0) {
base->flag |= BASE_SELECTED;
BLI_assert((base->flag & BASE_SELECTABLED) != 0);
BLI_assert((base->flag & BASE_SELECTABLE) != 0);
}
else {
base->flag &= ~BASE_SELECTED;

View File

@ -10040,7 +10040,7 @@ static void add_loose_objects_to_scene(
if (flag & FILE_AUTOSELECT) {
/* Note that link_object_postprocess() already checks for FILE_AUTOSELECT flag,
* but it will miss objects from non-instantiated collections... */
if (base->flag & BASE_SELECTABLED) {
if (base->flag & BASE_SELECTABLE) {
base->flag |= BASE_SELECTED;
BKE_scene_object_base_flag_sync_from_base(base);
}
@ -10073,7 +10073,7 @@ static void add_collections_to_scene(
BKE_collection_object_add(bmain, active_collection, ob);
Base *base = BKE_view_layer_base_find(view_layer, ob);
if (base->flag & BASE_SELECTABLED) {
if (base->flag & BASE_SELECTABLE) {
base->flag |= BASE_SELECTED;
}
@ -10184,7 +10184,7 @@ static void link_object_postprocess(ID *id, Main *bmain, Scene *scene, ViewLayer
BKE_scene_object_base_flag_sync_from_base(base);
if (flag & FILE_AUTOSELECT) {
if (base->flag & BASE_SELECTABLED) {
if (base->flag & BASE_SELECTABLE) {
base->flag |= BASE_SELECTED;
BKE_scene_object_base_flag_sync_from_base(base);
}

View File

@ -502,7 +502,7 @@ static void do_version_layers_to_collections(Main *bmain, Scene *scene)
}
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if ((base->flag & BASE_SELECTABLED) && (base->object->flag & SELECT)) {
if ((base->flag & BASE_SELECTABLE) && (base->object->flag & SELECT)) {
base->flag |= BASE_SELECTED;
}
}
@ -531,7 +531,7 @@ static void do_version_layers_to_collections(Main *bmain, Scene *scene)
/* convert selected bases */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if ((base->flag & BASE_SELECTABLED) && (base->object->flag & SELECT)) {
if ((base->flag & BASE_SELECTABLE) && (base->object->flag & SELECT)) {
base->flag |= BASE_SELECTED;
}

View File

@ -105,7 +105,7 @@ void DepsgraphNodeBuilder::build_view_layer(
*/
int base_index = 0;
const int base_flag = (graph_->mode == DAG_EVAL_VIEWPORT) ?
BASE_VISIBLE_VIEWPORT : BASE_VISIBLE_RENDER;
BASE_ENABLED_VIEWPORT : BASE_ENABLED_RENDER;
LISTBASE_FOREACH(Base *, base, &view_layer->object_bases) {
/* object itself */
if (base->flag & base_flag) {

View File

@ -95,7 +95,7 @@ void DepsgraphRelationBuilder::build_view_layer(Scene *scene, ViewLayer *view_la
* do NULL-pointer check of the base, so it's fine to pass original one.
*/
const int base_flag = (graph_->mode == DAG_EVAL_VIEWPORT) ?
BASE_VISIBLE_VIEWPORT : BASE_VISIBLE_RENDER;
BASE_ENABLED_VIEWPORT : BASE_ENABLED_RENDER;
LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {
if (base->flag & base_flag) {
build_object(base, base->object);

View File

@ -139,7 +139,7 @@ bool deg_objects_dupli_iterator_next(BLI_Iterator *iter)
temp_dupli_object->base_flag = dupli_parent->base_flag | BASE_FROMDUPLI;
/* Duplicated elements shouldn't care whether their original collection is visible or not. */
temp_dupli_object->base_flag |= BASE_VISIBLED;
temp_dupli_object->base_flag |= BASE_VISIBLE;
if (BKE_object_is_visible(temp_dupli_object, OB_VISIBILITY_CHECK_UNKNOWN_RENDER_MODE) == false) {
continue;

View File

@ -130,7 +130,7 @@ static void eevee_cache_populate(void *vedata, Object *ob)
const DRWContextState *draw_ctx = DRW_context_state_get();
bool cast_shadow = false;
if (ob->base_flag & BASE_VISIBLED) {
if (ob->base_flag & BASE_VISIBLE) {
EEVEE_hair_cache_populate(vedata, sldata, ob, &cast_shadow);
}

View File

@ -145,7 +145,7 @@ void EEVEE_render_cache(
RE_engine_update_stats(engine, NULL, info);
bool cast_shadow = false;
if (ob->base_flag & BASE_VISIBLED) {
if (ob->base_flag & BASE_VISIBLE) {
EEVEE_hair_cache_populate(vedata, sldata, ob, &cast_shadow);
}

View File

@ -1695,7 +1695,7 @@ void DRW_draw_select_loop(
DEG_ITER_OBJECT_FLAG_VISIBLE |
DEG_ITER_OBJECT_FLAG_DUPLI)
{
if ((ob->base_flag & BASE_SELECTABLED) != 0) {
if ((ob->base_flag & BASE_SELECTABLE) != 0) {
if (object_filter_fn != NULL) {
if (ob->base_flag & BASE_FROMDUPLI) {

View File

@ -2693,7 +2693,7 @@ static int mouse_anim_channels(bContext *C, bAnimContext *ac, int channel_index,
AnimData *adt = ob->adt;
/* set selection status */
if (base->flag & BASE_SELECTABLED) {
if (base->flag & BASE_SELECTABLE) {
if (selectmode == SELECT_INVERT) {
/* swap select */
ED_object_base_select(base, BA_INVERT);

View File

@ -1725,7 +1725,7 @@ static size_t animdata_filter_gpencil(bAnimContext *ac, ListBase *anim_data, voi
*/
if ((filter_mode & ANIMFILTER_DATA_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) {
/* layer visibility - we check both object and base, since these may not be in sync yet */
if ((base->flag & BASE_VISIBLED) == 0) continue;
if ((base->flag & BASE_VISIBLE) == 0) continue;
/* outliner restrict-flag */
if (ob->restrictflag & OB_RESTRICT_VIEW) continue;
@ -2864,7 +2864,7 @@ static bool animdata_filter_base_is_ok(bDopeSheet *ads, Base *base, int filter_m
*/
if ((filter_mode & ANIMFILTER_DATA_VISIBLE) && !(ads->filterflag & ADS_FILTER_INCL_HIDDEN)) {
/* layer visibility - we check both object and base, since these may not be in sync yet */
if ((base->flag & BASE_VISIBLED) == 0)
if ((base->flag & BASE_VISIBLE) == 0)
return false;
/* outliner restrict-flag */

View File

@ -2088,7 +2088,7 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, ViewLayer
DEG_id_tag_update(&obn->id, OB_RECALC_OB | OB_RECALC_DATA);
base = BKE_view_layer_base_find(view_layer, ob);
if ((base != NULL) && (base->flag & BASE_VISIBLED)) {
if ((base != NULL) && (base->flag & BASE_VISIBLE)) {
BKE_collection_object_add_from(bmain, scene, ob, obn);
}
else {

View File

@ -166,8 +166,8 @@ static int object_hide_view_clear_exec(bContext *C, wmOperator *op)
bool changed = false;
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if (base->flag & BASE_HIDE) {
base->flag &= ~BASE_HIDE;
if (base->flag & BASE_HIDDEN) {
base->flag &= ~BASE_HIDDEN;
changed = true;
if (select) {
@ -214,7 +214,7 @@ static int object_hide_view_set_exec(bContext *C, wmOperator *op)
/* Do nothing if no objects was selected. */
bool have_selected = false;
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if (base->flag & BASE_VISIBLED) {
if (base->flag & BASE_VISIBLE) {
if (base->flag & BASE_SELECTED) {
have_selected = true;
break;
@ -228,20 +228,20 @@ static int object_hide_view_set_exec(bContext *C, wmOperator *op)
/* Hide selected or unselected objects. */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if (!(base->flag & BASE_VISIBLED)) {
if (!(base->flag & BASE_VISIBLE)) {
continue;
}
if (!unselected) {
if (base->flag & BASE_SELECTED) {
ED_object_base_select(base, BA_DESELECT);
base->flag |= BASE_HIDE;
base->flag |= BASE_HIDDEN;
}
}
else {
if (!(base->flag & BASE_SELECTED)) {
ED_object_base_select(base, BA_DESELECT);
base->flag |= BASE_HIDE;
base->flag |= BASE_HIDDEN;
}
}
}

View File

@ -560,7 +560,7 @@ static int select_grouped_exec(bContext *C, wmOperator *UNUSED(op)) /* Select o
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (BKE_collection_has_object_recursive(collection, base->object)) {
ED_object_base_select(base, BA_SELECT);
}

View File

@ -100,7 +100,7 @@ void ED_object_base_select(Base *base, eObjectSelect_Mode mode)
if (base) {
switch (mode) {
case BA_SELECT:
if ((base->flag & BASE_SELECTABLED) != 0) {
if ((base->flag & BASE_SELECTABLE) != 0) {
base->flag |= BASE_SELECTED;
}
break;
@ -229,7 +229,7 @@ static bool object_select_all_by_obdata(bContext *C, void *obdata)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (base->object->data == obdata) {
ED_object_base_select(base, BA_SELECT);
changed = true;
@ -247,7 +247,7 @@ static bool object_select_all_by_material(bContext *C, Material *mat)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
Object *ob = base->object;
Material *mat1;
int a;
@ -274,7 +274,7 @@ static bool object_select_all_by_dup_group(bContext *C, Object *ob)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
Collection *dup_group_other = (base->object->transflag & OB_DUPLICOLLECTION) ? base->object->dup_group : NULL;
if (dup_group == dup_group_other) {
ED_object_base_select(base, BA_SELECT);
@ -294,7 +294,7 @@ static bool object_select_all_by_particle(bContext *C, Object *ob)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
/* loop through other particles*/
ParticleSystem *psys;
@ -322,7 +322,7 @@ static bool object_select_all_by_library(bContext *C, Library *lib)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (lib == base->object->id.lib) {
ED_object_base_select(base, BA_SELECT);
changed = true;
@ -340,7 +340,7 @@ static bool object_select_all_by_library_obdata(bContext *C, Library *lib)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (base->object->data && lib == ((ID *)base->object->data)->lib) {
ED_object_base_select(base, BA_SELECT);
changed = true;
@ -568,7 +568,7 @@ static bool select_grouped_collection(bContext *C, Object *ob) /* Select object
collection = ob_collections[0];
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (BKE_collection_has_object(collection, base->object)) {
ED_object_base_select(base, BA_SELECT);
changed = true;
@ -931,7 +931,7 @@ static int object_select_same_collection_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_SELECTED) == 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
if (BKE_collection_has_object(collection, base->object)) {
ED_object_base_select(base, BA_SELECT);
}

View File

@ -819,7 +819,7 @@ static void screen_render_cancel(bContext *C, wmOperator *op)
static void clean_viewport_memory_base(Base *base)
{
if ((base->flag & BASE_VISIBLED) == 0) {
if ((base->flag & BASE_VISIBLE) == 0) {
return;
}

View File

@ -423,7 +423,7 @@ static Scene *preview_prepare_scene(Main *bmain, Scene *scene, ID *id, int id_ty
(*matar)[actcol] = mat;
}
else if (base->object->type == OB_LAMP) {
base->flag |= BASE_VISIBLED;
base->flag |= BASE_VISIBLE;
}
}
}

View File

@ -115,7 +115,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
else if (CTX_data_equals(member, "selectable_objects")) {
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if (((base->flag & BASE_VISIBLED) != 0) && ((base->flag & BASE_SELECTABLED) != 0)) {
if (((base->flag & BASE_VISIBLE) != 0) && ((base->flag & BASE_SELECTABLE) != 0)) {
CTX_data_id_list_add(result, &base->object->id);
}
}
@ -165,7 +165,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
else if (CTX_data_equals(member, "selectable_bases")) {
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if ((base->flag & BASE_SELECTABLED) != 0) {
if ((base->flag & BASE_SELECTABLE) != 0) {
CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
}
}
@ -195,7 +195,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
else if (CTX_data_equals(member, "editable_bases")) {
/* Visible + Editable, but not necessarily selected */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if ((base->flag & BASE_VISIBLED) != 0) {
if ((base->flag & BASE_VISIBLE) != 0) {
if (0 == BKE_object_is_libdata(base->object)) {
CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
}

View File

@ -387,7 +387,7 @@ static void stats_update(ViewLayer *view_layer)
else {
/* Objects */
for (base = view_layer->object_bases.first; base; base = base->next)
if (base->flag & BASE_VISIBLED) {
if (base->flag & BASE_VISIBLE) {
stats_dupli_object(base, base->object, &stats);
}
}

View File

@ -129,7 +129,7 @@ static int mouse_nla_channels(bContext *C, bAnimContext *ac, float x, int channe
Object *ob = base->object;
AnimData *adt = ob->adt;
if (nlaedit_is_tweakmode_on(ac) == 0 && (base->flag & BASE_SELECTABLED)) {
if (nlaedit_is_tweakmode_on(ac) == 0 && (base->flag & BASE_SELECTABLE)) {
/* set selection status */
if (selectmode == SELECT_INVERT) {
/* swap select */

View File

@ -287,11 +287,11 @@ static void hidebutton_base_flag_cb(bContext *C, void *poin, void *poin2)
bool extend = (CTX_wm_window(C)->eventstate->ctrl == 0);
/* Undo button toggle, let function do it. */
base->flag ^= BASE_HIDE;
base->flag ^= BASE_HIDDEN;
BKE_base_set_visible(scene, view_layer, base, extend);
if (!extend && (base->flag & BASE_VISIBLED)) {
if (!extend && (base->flag & BASE_VISIBLE)) {
/* Auto select solo-ed object. */
ED_object_base_select(base, BA_SELECT);
view_layer->basact = base;
@ -516,7 +516,7 @@ static void outliner_draw_restrictbuts(
if (base) {
bt = uiDefIconButBitS(
block, UI_BTYPE_ICON_TOGGLE, BASE_HIDE, 0, ICON_HIDE_OFF,
block, UI_BTYPE_ICON_TOGGLE, BASE_HIDDEN, 0, ICON_HIDE_OFF,
(int)(ar->v2d.cur.xmax - OL_TOG_HIDEX), te->ys, UI_UNIT_X,
UI_UNIT_Y, &base->flag, 0, 0, 0, 0,
TIP_("Hide object in viewport (Ctrl to isolate)"));

View File

@ -206,7 +206,7 @@ static void do_outliner_object_select_recursive(ViewLayer *view_layer, Object *o
for (base = FIRSTBASE(view_layer); base; base = base->next) {
Object *ob = base->object;
if ((((base->flag & BASE_VISIBLED) == 0) && BKE_object_is_child_recursive(ob_parent, ob))) {
if ((((base->flag & BASE_VISIBLE) == 0) && BKE_object_is_child_recursive(ob_parent, ob))) {
ED_object_base_select(base, select ? BA_SELECT : BA_DESELECT);
}
}
@ -1000,7 +1000,7 @@ static void do_outliner_item_activate_tree_element(
Object *ob = (Object *)outliner_search_back(soops, te, ID_OB);
if ((ob != NULL) && (ob->data == tselem->id)) {
Base *base = BKE_view_layer_base_find(view_layer, ob);
if ((base != NULL) && (base->flag & BASE_VISIBLED)) {
if ((base != NULL) && (base->flag & BASE_VISIBLE)) {
do_outliner_activate_obdata(C, scene, view_layer, base);
}
}

View File

@ -401,7 +401,7 @@ static void object_select_cb(
Object *ob = (Object *)tselem->id;
Base *base = BKE_view_layer_base_find(view_layer, ob);
if (base && ((base->flag & BASE_VISIBLED) != 0)) {
if (base && ((base->flag & BASE_VISIBLE) != 0)) {
base->flag |= BASE_SELECTED;
}
}

View File

@ -1470,7 +1470,7 @@ static void outliner_add_layer_collection_objects(
TreeElement *te_object = outliner_add_element(soops, tree, base->object, ten, 0, 0);
te_object->directdata = base;
if (!(base->flag & BASE_VISIBLED)) {
if (!(base->flag & BASE_VISIBLE)) {
te_object->flag |= TE_DISABLED;
}
}
@ -1984,7 +1984,7 @@ static bool outliner_element_visible_get(ViewLayer *view_layer, TreeElement *te,
}
if (exclude_filter & SO_FILTER_OB_STATE_VISIBLE) {
if ((base->flag & BASE_VISIBLED) == 0) {
if ((base->flag & BASE_VISIBLE) == 0) {
return false;
}
}

View File

@ -1410,7 +1410,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
if (view_layer->basact) {
Object *ob = view_layer->basact->object;
/* if hidden but in edit mode, we still display, can happen with animation */
if ((view_layer->basact->flag & BASE_VISIBLED) != 0 || (ob->mode & OB_MODE_EDIT)) {
if ((view_layer->basact->flag & BASE_VISIBLE) != 0 || (ob->mode & OB_MODE_EDIT)) {
CTX_data_pointer_set(result, &scene->id, &RNA_ObjectBase, view_layer->basact);
}
}
@ -1422,7 +1422,7 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
if (view_layer->basact) {
Object *ob = view_layer->basact->object;
/* if hidden but in edit mode, we still display, can happen with animation */
if ((view_layer->basact->flag & BASE_VISIBLED) != 0 || (ob->mode & OB_MODE_EDIT) != 0) {
if ((view_layer->basact->flag & BASE_VISIBLE) != 0 || (ob->mode & OB_MODE_EDIT) != 0) {
CTX_data_id_pointer_set(result, &ob->id);
}
}

View File

@ -263,7 +263,7 @@ static void backdrawview3d(
G.f |= G_BACKBUFSEL;
if (obact_eval && ((obact_eval->base_flag & BASE_VISIBLED) != 0)) {
if (obact_eval && ((obact_eval->base_flag & BASE_VISIBLE) != 0)) {
draw_object_backbufsel(depsgraph, scene_eval, v3d, rv3d, obact_eval, select_mode);
}

View File

@ -1326,7 +1326,7 @@ static Base *mouse_select_eval_buffer(
while (base) {
/* skip objects with select restriction, to prevent prematurely ending this loop
* with an un-selectable choice */
if ((base->flag & BASE_SELECTABLED) == 0) {
if ((base->flag & BASE_SELECTABLE) == 0) {
base = base->next;
if (base == NULL) base = FIRSTBASE(view_layer);
if (base == startbase) break;

View File

@ -502,7 +502,7 @@ static void draw_uvs_other(ViewLayer *view_layer, Object *obedit, const Image *c
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
if (((base->flag & BASE_SELECTED) != 0) &&
((base->flag & BASE_VISIBLED) != 0))
((base->flag & BASE_VISIBLE) != 0))
{
Object *ob = base->object;
if ((ob->type == OB_MESH) && (ob != obedit) && ((Mesh *)ob->data)->mloopuv) {

View File

@ -91,15 +91,19 @@ typedef struct ViewLayer {
/* Base->flag */
enum {
/* User controlled flags. */
BASE_SELECTED = (1 << 0), /* Object is selected. */
BASE_VISIBLED = (1 << 1), /* Object is visible. */
BASE_SELECTABLED = (1 << 2), /* Object can be selected. */
BASE_HIDDEN = (1 << 8), /* Object is hidden for editing. */
/* Runtime evaluated flags. */
BASE_VISIBLE = (1 << 1), /* Object is enabled and visible. */
BASE_SELECTABLE = (1 << 2), /* Object can be selected. */
BASE_FROMDUPLI = (1 << 3), /* Object comes from duplicator. */
/* BASE_DEPRECATED = (1 << 4), */
BASE_FROM_SET = (1 << 5), /* To be set only by the depsgraph */
BASE_VISIBLE_VIEWPORT = (1 << 6), /* Object is visible in viewport. */
BASE_VISIBLE_RENDER = (1 << 7), /* Object is visible in final render */
BASE_HIDE = (1 << 8), /* Object is hidden for editing. */
BASE_FROM_SET = (1 << 5), /* Object comes from set. */
BASE_ENABLED_VIEWPORT = (1 << 6), /* Object is enabled in viewport. */
BASE_ENABLED_RENDER = (1 << 7), /* Object is enabled in final render */
BASE_ENABLED = (1 << 9), /* Object is enabled. */
};
/* LayerCollection->flag */

View File

@ -1723,22 +1723,22 @@ extern const char *RE_engine_id_CYCLES;
/* deprecate this! */
#define TESTBASE(base) ( \
(((base)->flag & BASE_SELECTED) != 0) && \
(((base)->flag & BASE_VISIBLED) != 0))
(((base)->flag & BASE_VISIBLE) != 0))
#define TESTBASELIB(base) ( \
(((base)->flag & BASE_SELECTED) != 0) && \
((base)->object->id.lib == NULL) && \
(((base)->flag & BASE_VISIBLED) != 0))
(((base)->flag & BASE_VISIBLE) != 0))
#define TESTBASELIB_BGMODE(base) ( \
(((base)->flag & BASE_SELECTED) != 0) && \
((base)->object->id.lib == NULL) && \
(((base)->flag & BASE_VISIBLED) != 0))
(((base)->flag & BASE_VISIBLE) != 0))
#define BASE_EDITABLE_BGMODE(base) ( \
((base)->object->id.lib == NULL) && \
(((base)->flag & BASE_VISIBLED) != 0))
(((base)->flag & BASE_VISIBLE) != 0))
#define BASE_SELECTABLE(base) \
(((base)->flag & BASE_SELECTABLED) != 0)
(((base)->flag & BASE_SELECTABLE) != 0)
#define BASE_VISIBLE(base) ( \
((base)->flag & BASE_VISIBLED) != 0)
((base)->flag & BASE_VISIBLE) != 0)
#define FIRSTBASE(_view_layer) ((_view_layer)->object_bases.first)
#define LASTBASE(_view_layer) ((_view_layer)->object_bases.last)

View File

@ -264,21 +264,21 @@ void RNA_def_collections(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", COLLECTION_RESTRICT_SELECT);
RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 1);
RNA_def_property_ui_text(prop, "Restrict Select", "Disable collection for viewport selection");
RNA_def_property_ui_text(prop, "Disable Select", "Disable collection for viewport selection");
RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_Collection_flag_update");
prop = RNA_def_property(srna, "hide_viewport", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", COLLECTION_RESTRICT_VIEW);
RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 1);
RNA_def_property_ui_text(prop, "Restrict Viewport", "Disable collection in viewport");
RNA_def_property_ui_text(prop, "Disable Viewport", "Disable collection in viewport");
RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_Collection_flag_update");
prop = RNA_def_property(srna, "hide_render", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", COLLECTION_RESTRICT_RENDER);
RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC);
RNA_def_property_ui_icon(prop, ICON_RESTRICT_RENDER_OFF, 1);
RNA_def_property_ui_text(prop, "Restrict Render", "Disable collection in renders");
RNA_def_property_ui_text(prop, "Disable Render", "Disable collection in renders");
RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_Collection_flag_update");
}

View File

@ -2307,19 +2307,19 @@ static void rna_def_object(BlenderRNA *brna)
/* restrict */
prop = RNA_def_property(srna, "hide_viewport", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_VIEW);
RNA_def_property_ui_text(prop, "Restrict View", "Restrict visibility in the viewport");
RNA_def_property_ui_text(prop, "Disable View", "Disable object in the viewport");
RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 1);
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_hide_update");
prop = RNA_def_property(srna, "hide_select", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_SELECT);
RNA_def_property_ui_text(prop, "Restrict Select", "Restrict selection in the viewport");
RNA_def_property_ui_text(prop, "Disable Select", "Disable object selection in the viewport");
RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 1);
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
prop = RNA_def_property(srna, "hide_render", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_RENDER);
RNA_def_property_ui_text(prop, "Restrict Render", "Restrict renderability");
RNA_def_property_ui_text(prop, "Disable Render", "Disable object in renders");
RNA_def_property_ui_icon(prop, ICON_RESTRICT_RENDER_OFF, 1);
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_hide_update");

View File

@ -145,7 +145,7 @@ static int rna_Object_visible_get(Object *ob, bContext *C, ReportList *reports)
return -1;
}
return ((base->flag & BASE_VISIBLED) != 0) ? 1 : 0;
return ((base->flag & BASE_VISIBLE) != 0) ? 1 : 0;
}
/* Convert a given matrix from a space to another (using the object and/or a bone as reference). */