Cleanup: rename object base flags to be more clear.
This commit is contained in:
parent
a99dcab148
commit
817bf582c2
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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; \
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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)"));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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). */
|
||||
|
|
Loading…
Reference in New Issue