diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-03 16:20:43 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-03 17:19:32 +0300 |
commit | ba1cae5a04d429e2f4e58d5fd1e740c70462620a (patch) | |
tree | a3299b49718e2cd74f412807fb97156a77d98efa /source/blender/makesdna | |
parent | a2d24345bfead8e4279a818a67d73d42d2565b96 (diff) |
Fix some inconsistencies in object visibility/selectability tests.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 5c9d9a74af3..4b66ee62269 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1819,41 +1819,32 @@ extern const char *RE_engine_id_CYCLES; #define MINAFRAMEF -1048574.0f /* deprecate this! */ -#define TESTBASE(v3d, base) ( \ - (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ +#define BASE_VISIBLE(v3d, base) ( \ + (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ + (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ (((base)->flag & BASE_VISIBLE) != 0)) -#define TESTBASELIB(v3d, base) ( \ - (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ - ((base)->object->id.lib == NULL) && \ - (((base)->flag & BASE_VISIBLE) != 0)) -#define TESTBASELIB_BGMODE(v3d, base) ( \ - ((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ - ((base)->object->id.lib == NULL) && \ - (((base)->flag & BASE_VISIBLE) != 0)) -#define BASE_EDITABLE_BGMODE(v3d, base) ( \ +#define BASE_VISIBLE_BGMODE(v3d, base) ( \ ((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ - ((base)->object->id.lib == NULL) && \ + ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ (((base)->flag & BASE_VISIBLE) != 0)) -#define BASE_SELECTABLE(v3d, base) ( \ - (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((1 << (base)->object->type) & (v3d)->object_type_exclude_select) == 0) && \ + +#define BASE_SELECTABLE(v3d, base) ( \ + BASE_VISIBLE(v3d, base) && \ + (((1 << (base)->object->type) & (v3d)->object_type_exclude_select) == 0) && \ (((base)->flag & BASE_SELECTABLE) != 0)) -#define BASE_VISIBLE(v3d, base) ( \ - (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((base)->flag & BASE_VISIBLE) != 0)) -#define BASE_VISIBLE_BGMODE(v3d, base) ( \ - ((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ - ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ - (((base)->flag & BASE_VISIBLE) != 0)) +#define BASE_SELECTABLE_BGMODE(v3d, base) ( \ + BASE_VISIBLE_BGMODE(v3d, base) && \ + ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_select) == 0)) && \ + (((base)->flag & BASE_SELECTABLE) != 0)) + +#define TESTBASE(v3d, base) \ + (BASE_VISIBLE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0)) +#define TESTBASELIB(v3d, base) \ + (TESTBASE(v3d, base) && ((base)->object->id.lib == NULL)) +#define BASE_EDITABLE_BGMODE(v3d, base) \ + (BASE_VISIBLE_BGMODE(v3d, base) && ((base)->object->id.lib == NULL)) +#define TESTBASELIB_BGMODE(v3d, base) \ + (BASE_EDITABLE_BGMODE(v3d, base) && (((base)->flag & BASE_SELECTED) != 0)) #define FIRSTBASE(_view_layer) ((_view_layer)->object_bases.first) #define LASTBASE(_view_layer) ((_view_layer)->object_bases.last) |