Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | ObjectsVisibleIteratorData |
struct | ObjectsInModeIteratorData |
struct | ObjectsInViewLayerParams |
struct | ObjectsInModeParams |
Typedefs | |
typedef enum eViewLayerCopyMethod | eViewLayerCopyMethod |
typedef struct ObjectsVisibleIteratorData | ObjectsVisibleIteratorData |
Enumerations | |
enum | eViewLayerCopyMethod { VIEWLAYER_ADD_NEW = 0 , VIEWLAYER_ADD_EMPTY = 1 , VIEWLAYER_ADD_COPY = 2 } |
#define BKE_view_layer_array_from_bases_in_edit_mode | ( | view_layer, | |
v3d, | |||
r_len | |||
) | BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT}) |
Definition at line 539 of file BKE_layer.h.
#define BKE_view_layer_array_from_bases_in_edit_mode_unique_data | ( | view_layer, | |
v3d, | |||
r_len | |||
) |
Definition at line 546 of file BKE_layer.h.
#define BKE_view_layer_array_from_bases_in_mode | ( | view_layer, | |
v3d, | |||
r_len, | |||
... | |||
) |
Definition at line 527 of file BKE_layer.h.
#define BKE_view_layer_array_from_objects_in_edit_mode | ( | view_layer, | |
v3d, | |||
r_len | |||
) | BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT}) |
Definition at line 536 of file BKE_layer.h.
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data | ( | view_layer, | |
v3d, | |||
r_len | |||
) |
Definition at line 542 of file BKE_layer.h.
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs | ( | view_layer, | |
v3d, | |||
r_len | |||
) |
Definition at line 550 of file BKE_layer.h.
#define BKE_view_layer_array_from_objects_in_mode | ( | view_layer, | |
v3d, | |||
r_len, | |||
... | |||
) |
Definition at line 523 of file BKE_layer.h.
#define BKE_view_layer_array_from_objects_in_mode_unique_data | ( | view_layer, | |
v3d, | |||
r_len, | |||
mode | |||
) |
Definition at line 560 of file BKE_layer.h.
#define BKE_view_layer_array_selected_objects | ( | view_layer, | |
v3d, | |||
r_len, | |||
... | |||
) |
Definition at line 499 of file BKE_layer.h.
#define FOREACH_BASE_IN_EDIT_MODE_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) | FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance) |
Definition at line 375 of file BKE_layer.h.
#define FOREACH_BASE_IN_EDIT_MODE_END FOREACH_BASE_IN_MODE_END |
Definition at line 378 of file BKE_layer.h.
#define FOREACH_BASE_IN_MODE_BEGIN | ( | _view_layer, | |
_v3d, | |||
_object_type, | |||
_object_mode, | |||
_instance | |||
) |
Definition at line 354 of file BKE_layer.h.
#define FOREACH_BASE_IN_MODE_END |
Definition at line 370 of file BKE_layer.h.
#define FOREACH_OBJECT_BEGIN | ( | view_layer, | |
_instance | |||
) |
Definition at line 423 of file BKE_layer.h.
#define FOREACH_OBJECT_END |
Definition at line 430 of file BKE_layer.h.
Definition at line 435 of file BKE_layer.h.
#define FOREACH_OBJECT_FLAG_END |
Definition at line 469 of file BKE_layer.h.
#define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) |
Definition at line 388 of file BKE_layer.h.
#define FOREACH_OBJECT_IN_EDIT_MODE_END |
Definition at line 392 of file BKE_layer.h.
#define FOREACH_OBJECT_IN_MODE_BEGIN | ( | _view_layer, | |
_v3d, | |||
_object_type, | |||
_object_mode, | |||
_instance | |||
) |
Definition at line 380 of file BKE_layer.h.
#define FOREACH_OBJECT_IN_MODE_END |
Definition at line 384 of file BKE_layer.h.
#define FOREACH_SELECTED_BASE_BEGIN | ( | view_layer, | |
_instance | |||
) |
Definition at line 396 of file BKE_layer.h.
Definition at line 404 of file BKE_layer.h.
#define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) |
Definition at line 320 of file BKE_layer.h.
#define FOREACH_SELECTED_EDITABLE_OBJECT_END |
Definition at line 332 of file BKE_layer.h.
#define FOREACH_SELECTED_OBJECT_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) |
Definition at line 303 of file BKE_layer.h.
#define FOREACH_SELECTED_OBJECT_END |
Definition at line 315 of file BKE_layer.h.
#define FOREACH_VISIBLE_BASE_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) |
Definition at line 406 of file BKE_layer.h.
#define FOREACH_VISIBLE_BASE_END |
Definition at line 418 of file BKE_layer.h.
#define FOREACH_VISIBLE_OBJECT_BEGIN | ( | _view_layer, | |
_v3d, | |||
_instance | |||
) |
Definition at line 337 of file BKE_layer.h.
#define FOREACH_VISIBLE_OBJECT_END |
Definition at line 349 of file BKE_layer.h.
#define TODO_LAYER /* generic todo */ |
Definition at line 20 of file BKE_layer.h.
#define TODO_LAYER_OPERATORS /* collection mamanger and property panel operators */ |
Definition at line 19 of file BKE_layer.h.
#define TODO_LAYER_OVERRIDE /* CollectionOverride */ |
Definition at line 18 of file BKE_layer.h.
typedef enum eViewLayerCopyMethod eViewLayerCopyMethod |
typedef struct ObjectsVisibleIteratorData ObjectsVisibleIteratorData |
enum eViewLayerCopyMethod |
Enumerator | |
---|---|
VIEWLAYER_ADD_NEW | |
VIEWLAYER_ADD_EMPTY | |
VIEWLAYER_ADD_COPY |
Definition at line 36 of file BKE_layer.h.
Applies object's restrict flags on top of flags coming from the collection and stores those in base->flag
. BASE_VISIBLE_DEPSGRAPH ignores viewport flags visibility (i.e., restriction and local collection).
Definition at line 2200 of file layer.c.
References BASE_ENABLED_RENDER, BASE_ENABLED_VIEWPORT, BASE_HIDDEN, BASE_SELECTABLE, BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, BASE_VISIBLE_VIEWLAYER, Base::flag, Base::flag_from_collection, g_base_collection_flags, OB_HIDE_RENDER, OB_HIDE_SELECT, OB_HIDE_VIEWPORT, Base::object, and Object::visibility_flag.
Referenced by BKE_layer_collection_sync(), BKE_object_eval_eval_base_flags(), and object_add_named_exec().
void BKE_base_set_visible | ( | struct Scene * | scene, |
struct ViewLayer * | view_layer, | ||
struct Base * | base, | ||
bool | extend | ||
) |
Update after toggling visibility of an object base.
Definition at line 1491 of file layer.c.
References BASE_HIDDEN, BKE_layer_collection_sync(), Base::flag, LISTBASE_FOREACH, ViewLayer::object_bases, and scene.
bool BKE_layer_collection_activate | ( | struct ViewLayer * | view_layer, |
struct LayerCollection * | lc | ||
) |
Activate collection
Definition at line 641 of file layer.c.
References ViewLayer::active_collection, LayerCollection::flag, and LAYER_COLLECTION_EXCLUDE.
Referenced by BKE_layer_collection_isolate_global(), tree_element_layer_collection_activate(), and tree_element_master_collection_activate().
struct LayerCollection* BKE_layer_collection_activate_parent | ( | struct ViewLayer * | view_layer, |
struct LayerCollection * | lc | ||
) |
Activate first parent collection.
Definition at line 651 of file layer.c.
References ViewLayer::active_collection, BKE_layer_collection_activate_parent(), BKE_layer_collection_first_from_scene_collection(), CollectionParent::collection, LayerCollection::collection, ListBase::first, layer_collection_hidden(), ViewLayer::layer_collections, NULL, and Collection::parents.
Referenced by BKE_layer_collection_activate_parent(), BKE_layer_collection_sync(), collection_add_info_get_from_op(), and collection_instance_exec().
int BKE_layer_collection_count | ( | const struct ViewLayer * | view_layer | ) |
Get the total number of collections (including all the nested collections)
void BKE_layer_collection_doversion_2_80 | ( | const struct Scene * | scene, |
struct ViewLayer * | view_layer | ||
) |
Helper to fix older pre-2.80 blend-files.
Ensures the given view_layer
as a valid first-level layer collection, i.e. a single one matching the scene's master collection. This is a requirement for BKE_layer_collection_sync
.
int BKE_layer_collection_findindex | ( | struct ViewLayer * | view_layer, |
const struct LayerCollection * | lc | ||
) |
Referenced by ED_collection_hide_menu_draw().
struct LayerCollection* BKE_layer_collection_first_from_scene_collection | ( | const struct ViewLayer * | view_layer, |
const struct Collection * | collection | ||
) |
Return the first matching LayerCollection in the ViewLayer for the Collection.
Referenced by BKE_collection_objects_select(), do_version_layers_to_collections(), and blender::io::usd::import_startjob().
struct LayerCollection* BKE_layer_collection_from_index | ( | struct ViewLayer * | view_layer, |
int | index | ||
) |
Get the collection for a given index.
Definition at line 630 of file layer.c.
References collection_from_index(), and ViewLayer::layer_collections.
Referenced by object_hide_collection_exec().
struct LayerCollection* BKE_layer_collection_get_active | ( | struct ViewLayer * | view_layer | ) |
Get the active collection
Definition at line 636 of file layer.c.
References ViewLayer::active_collection.
Referenced by bc_add_object(), BKE_object_add(), BKE_object_add_for_data(), collection_add_info_get_from_op(), collection_instance_exec(), CTX_data_layer_collection(), blender::io::obj::geometry_to_blender_objects(), blender::io::usd::import_endjob(), import_endjob(), blender::io::stl::importer_main(), loose_data_instantiate_ensure_active_collection(), and object_add_duplicate_internal().
bool BKE_layer_collection_has_layer_collection | ( | struct LayerCollection * | lc_parent, |
struct LayerCollection * | lc_child | ||
) |
Definition at line 1470 of file layer.c.
References BKE_layer_collection_has_layer_collection(), LayerCollection::layer_collections, and LISTBASE_FOREACH.
Referenced by BKE_layer_collection_has_layer_collection(), BKE_layer_collection_isolate_global(), BKE_layer_collection_isolate_local(), and outliner_collection_isolate_flag().
bool BKE_layer_collection_has_selected_objects | ( | struct ViewLayer * | view_layer, |
struct LayerCollection * | lc | ||
) |
Definition at line 1445 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, BKE_layer_collection_has_selected_objects(), BKE_view_layer_base_find(), LayerCollection::collection, COLLECTION_HIDE_SELECT, Collection::flag, Base::flag, LayerCollection::flag, Collection::gobject, LAYER_COLLECTION_EXCLUDE, LayerCollection::layer_collections, and LISTBASE_FOREACH.
Referenced by BKE_layer_collection_has_selected_objects(), and ED_collection_hide_menu_draw().
void BKE_layer_collection_isolate_global | ( | struct Scene * | scene, |
struct ViewLayer * | view_layer, | ||
struct LayerCollection * | lc, | ||
bool | extend | ||
) |
Isolate the collection - hide all other collections but this one. Make sure to show all the direct parents and all children of the layer collection as well. When extending we simply show the collections and its direct family.
If the collection or any of its parents is disabled, make it enabled. Don't change the children disable state though.
Definition at line 1585 of file layer.c.
References BKE_layer_collection_activate(), BKE_layer_collection_has_layer_collection(), BKE_layer_collection_sync(), ListBase::first, LayerCollection::flag, layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), LAYER_COLLECTION_HIDE, LAYER_COLLECTION_VISIBLE_VIEW_LAYER, LayerCollection::layer_collections, ViewLayer::layer_collections, LISTBASE_FOREACH, LayerCollection::runtime_flag, and scene.
Referenced by collection_isolate_exec(), and object_hide_collection_exec().
void BKE_layer_collection_isolate_local | ( | struct ViewLayer * | view_layer, |
const struct View3D * | v3d, | ||
struct LayerCollection * | lc, | ||
bool | extend | ||
) |
Isolate the collection locally
Same as BKE_layer_collection_isolate_local but for a viewport
Referenced by object_hide_collection_exec().
Referenced by ED_view3d_local_collections_reset(), and object_hide_collection_exec().
Sync the local collection for all the 3D Viewports.
bool BKE_layer_collection_objects_select | ( | struct ViewLayer * | view_layer, |
struct LayerCollection * | lc, | ||
bool | deselect | ||
) |
Select all the objects of this layer collection
It also select the objects that are in nested collections.
Definition at line 1409 of file layer.c.
References BASE_SELECTABLE, BASE_SELECTED, BKE_layer_collection_objects_select(), BKE_view_layer_base_find(), LayerCollection::collection, COLLECTION_HIDE_SELECT, Collection::flag, Base::flag, LayerCollection::flag, Collection::gobject, LAYER_COLLECTION_EXCLUDE, LayerCollection::layer_collections, and LISTBASE_FOREACH.
Referenced by BKE_collection_objects_select(), BKE_layer_collection_objects_select(), and collection_objects_select_exec().
Definition at line 766 of file layer.c.
References no_resync.
Referenced by BKE_lib_override_library_main_resync(), duplicate_exec(), blender::io::obj::geometry_to_blender_objects(), id_delete(), blender::io::usd::import_endjob(), and import_endjob().
Definition at line 761 of file layer.c.
References no_resync.
Referenced by BKE_lib_override_library_main_resync(), duplicate_exec(), blender::io::obj::geometry_to_blender_objects(), id_delete(), blender::io::usd::import_endjob(), and import_endjob().
void BKE_layer_collection_set_flag | ( | struct LayerCollection * | lc, |
int | flag, | ||
bool | value | ||
) |
Definition at line 1854 of file layer.c.
References layer_collection_flag_recursive_set().
Referenced by collection_view_layer_exec(), and outliner_unhide_all_exec().
void BKE_layer_collection_set_visible | ( | struct ViewLayer * | view_layer, |
struct LayerCollection * | lc, | ||
bool | visible, | ||
bool | hierarchy | ||
) |
Hide/show all the elements of a collection. Don't change the collection children enable/disable state, but it may change it for the collection itself.
Definition at line 1791 of file layer.c.
References LayerCollection::flag, layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), and LAYER_COLLECTION_HIDE.
Referenced by collection_visibility_exec(), and outliner_hide_exec().
Update view layer collection tree from collections used in the scene. This is used when collections are removed or added, both while editing and on file loaded in case linked data changed or went missing.
Referenced by collection_flag_exec(), collection_isolate_exec(), collection_view_layer_exec(), collection_visibility_exec(), object_hide_view_clear_exec(), object_hide_view_set_exec(), outliner_hide_exec(), outliner_object_set_flag_recursive_fn(), outliner_unhide_all_exec(), and set_preview_visibility().
void BKE_layer_eval_view_layer_indexed | ( | struct Depsgraph * | depsgraph, |
struct Scene * | scene, | ||
int | view_layer_index | ||
) |
Definition at line 2248 of file layer.c.
References BLI_assert, BLI_findlink(), depsgraph, layer_eval_view_layer(), NULL, scene, ObjectsInModeIteratorData::view_layer, and Scene::view_layers.
void BKE_lightgroup_membership_get | ( | struct LightgroupMembership * | lgm, |
char * | name | ||
) |
Definition at line 2624 of file layer.c.
References BLI_strncpy(), ViewLayerLightgroup::name, LightgroupMembership::name, and NULL.
int BKE_lightgroup_membership_length | ( | struct LightgroupMembership * | lgm | ) |
Definition at line 2634 of file layer.c.
References LightgroupMembership::name, and NULL.
void BKE_lightgroup_membership_set | ( | struct LightgroupMembership ** | lgm, |
const char * | name | ||
) |
Definition at line 2642 of file layer.c.
References BLI_strncpy(), MEM_callocN, MEM_freeN, ViewLayerLightgroup::name, and NULL.
Referenced by BKE_blendfile_library_relocate(), BKE_collection_add(), BKE_collection_add_from_collection(), BKE_collection_add_from_object(), BKE_collection_child_add(), BKE_collection_child_remove(), BKE_collection_delete(), BKE_collection_duplicate(), BKE_collection_move(), BKE_collection_object_add_from(), BKE_collection_object_add_notest(), BKE_collection_object_remove(), BKE_collections_after_lib_link(), BKE_scene_duplicate(), duplicate_exec(), blender::io::obj::geometry_to_blender_objects(), blender::io::usd::import_endjob(), import_endjob(), lib_override_library_resync(), and scene_collections_object_remove().
Referenced by DRW_draw_depth_loop(), DRW_draw_render_loop_ex(), DRW_draw_select_loop(), stats_object(), and stats_update().
See if the object is in any of the scene layers of the scene.
Definition at line 1895 of file layer.c.
References BKE_view_layer_base_find(), LISTBASE_FOREACH, scene, and Scene::view_layers.
Referenced by ED_editors_init(), and scene_drop_invoke().
struct ViewLayer* BKE_view_layer_add | ( | struct Scene * | scene, |
const char * | name, | ||
struct ViewLayer * | view_layer_source, | ||
int | type | ||
) |
Add a new view layer by default, a view layer has the master collection.
Definition at line 185 of file layer.c.
References BKE_layer_collection_sync(), BKE_view_layer_copy_data(), BLI_addtail(), BLI_strncpy_utf8(), BLI_uniquename(), DATA_, ListBase::first, layer_collection_exclude_all(), ViewLayer::layer_collections, MEM_callocN, ViewLayer::name, scene, type, view_layer_add(), Scene::view_layers, VIEWLAYER_ADD_COPY, VIEWLAYER_ADD_EMPTY, and VIEWLAYER_ADD_NEW.
Referenced by do_version_layers_to_collections(), scene_init_data(), and view_layer_add_exec().
struct ViewLayerAOV* BKE_view_layer_add_aov | ( | struct ViewLayer * | view_layer | ) |
Definition at line 2421 of file layer.c.
References AOV_TYPE_COLOR, ViewLayer::aovs, BLI_addtail(), BLI_strncpy(), DATA_, MEM_callocN, ViewLayerAOV::name, ViewLayerAOV::type, viewlayer_aov_active_set(), and viewlayer_aov_make_name_unique().
Referenced by blender::bke::tests::TEST(), and view_layer_add_aov_exec().
struct ViewLayerLightgroup* BKE_view_layer_add_lightgroup | ( | struct ViewLayer * | view_layer, |
const char * | name | ||
) |
Definition at line 2544 of file layer.c.
References BLI_addtail(), BLI_strncpy(), DATA_, ViewLayer::lightgroups, MEM_callocN, ViewLayerLightgroup::name, viewlayer_lightgroup_active_set(), and viewlayer_lightgroup_make_name_unique().
Referenced by view_layer_add_lightgroup_exec(), and view_layer_add_used_lightgroups_exec().
struct Base** BKE_view_layer_array_from_bases_in_mode_params | ( | struct ViewLayer * | view_layer, |
const struct View3D * | v3d, | ||
uint * | r_len, | ||
const struct ObjectsInModeParams * | params | ||
) |
Referenced by BKE_object_pose_base_array_get_ex(), and tree_element_ebone_activate().
struct Object** BKE_view_layer_array_from_objects_in_mode_params | ( | struct ViewLayer * | view_layer, |
const struct View3D * | v3d, | ||
uint * | len, | ||
const struct ObjectsInModeParams * | params | ||
) |
Referenced by BKE_object_pose_array_get_ex().
struct Object** BKE_view_layer_array_selected_objects_params | ( | struct ViewLayer * | view_layer, |
const struct View3D * | v3d, | ||
uint * | r_len, | ||
const struct ObjectsInViewLayerParams * | params | ||
) |
Definition at line 28 of file layer_utils.c.
References BLI_array_append, BLI_array_declare, BLI_array_len, BLI_array_trim, FOREACH_SELECTED_OBJECT_BEGIN, FOREACH_SELECTED_OBJECT_END, id, LIB_TAG_DOIT, MEM_mallocN, NULL, params, and ID::tag.
Referenced by collection_drop_exec(), and object_transform_to_mouse_exec().
Definition at line 388 of file layer.c.
References BASE_SELECTED, ListBase::first, Base::flag, Base::next, and ViewLayer::object_bases.
Referenced by BKE_copybuffer_paste(), BKE_object_add_for_data(), do_outliner_item_activate_tree_element(), do_outliner_item_mode_toggle_generic(), DocumentImporter::import(), blender::io::usd::import_endjob(), import_endjob(), blender::io::obj::importer_main(), blender::io::stl::importer_main(), make_local_exec(), object_add_common(), object_transfer_mode_to_base(), select_marker_camera_switch(), tree_element_object_activate(), view3d_collection_drop_copy_external_asset(), view3d_ob_drop_copy_external_asset(), and wm_link_append_exec().
Definition at line 379 of file layer.c.
References BLI_ghash_lookup(), ViewLayer::object_bases_hash, and view_layer_bases_hash_create().
Referenced by add_hook_object_new(), bake_object_check(), bc_add_object(), BKE_layer_collection_has_selected_objects(), BKE_layer_collection_objects_select(), BKE_object_add(), BKE_object_add_for_data(), BKE_object_add_from(), BKE_object_pose_armature_get_visible(), BKE_object_pose_base_array_get_ex(), BKE_scene_has_object(), clear_override_library_exec(), collection_objects_select(), createTransObject(), CTX_data_active_base(), ctx_data_base_collection_get(), do_outliner_item_activate_tree_element(), do_outliner_item_mode_toggle_generic(), do_version_layers_to_collections(), duplibase_for_convert(), duplicate_exec(), ED_armature_pose_select_in_wpaint_mode(), ED_object_jump_to_object(), ed_object_posemode_set_for_weight_paint_ex(), ED_outliner_give_base_under_cursor(), ED_undo_object_set_active_or_warn(), EDBM_edge_find_nearest(), EDBM_face_find_nearest(), EDBM_vert_find_nearest(), editselect_buf_cache_init(), element_should_draw_faded(), blender::io::obj::geometry_to_blender_objects(), getTransformOrientation_ex(), gpencil_layer_to_curve(), id_override_library_clear_single_fn(), blender::io::usd::import_endjob(), import_endjob(), blender::io::stl::importer_main(), jump_to_target_ptr(), layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_local_sync(), lib_override_library_create_post_process(), loose_data_instantiate_collection_process(), loose_data_instantiate_object_base_instance_init(), make_local_all__instance_indirect_unused(), make_object_duplilist_real(), object_add_duplicate_internal(), object_batch_delete_hierarchy_fn(), object_deselect_fn(), object_preview_scene_create(), object_select_fn(), object_select_mirror_exec(), object_transfer_mode_to_base(), outliner_base_or_object_pointer_create(), outliner_draw_restrictbuts(), outliner_draw_tree_element(), outliner_element_visible_get(), outliner_hide_find_data_to_edit(), outliner_item_mode_toggle(), outliner_object_set_flag_recursive_fn(), outliner_select_sync_from_object(), outliner_select_sync_to_object(), override_idtemplate_clear_exec(), parent_drop_allowed(), scene_drop_invoke(), screen_set_3dview_camera(), select_grouped_object_hooks(), select_grouped_parent(), select_marker_camera_switch(), set_trans_object_base_flags(), transform_object_deform_pose_armature_get(), tree_element_object_activate(), tree_element_pose_state_get(), validate_object_select_id(), view3d_collection_drop_copy_external_asset(), and view3d_ob_drop_copy_external_asset().
void BKE_view_layer_base_select_and_set_active | ( | struct ViewLayer * | view_layer, |
struct Base * | selbase | ||
) |
Definition at line 397 of file layer.c.
References ViewLayer::basact, BASE_SELECTABLE, BASE_SELECTED, and Base::flag.
Referenced by bc_add_object(), BKE_object_add(), BKE_object_add_for_data(), BKE_object_add_from(), do_outliner_item_mode_toggle_generic(), blender::io::obj::geometry_to_blender_objects(), blender::io::usd::import_endjob(), import_endjob(), blender::io::stl::importer_main(), object_transfer_mode_to_base(), view3d_collection_drop_copy_external_asset(), and view3d_ob_drop_copy_external_asset().
void BKE_view_layer_bases_in_mode_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2136 of file layer.c.
References base_is_in_mode(), BKE_base_is_visible(), BKE_view_layer_bases_in_mode_iterator_next(), BLI_assert, BLI_Iterator::current, BLI_Iterator::data, data, NULL, Base::object, Object::type, and BLI_Iterator::valid.
void BKE_view_layer_bases_in_mode_iterator_end | ( | BLI_Iterator * | iter | ) |
void BKE_view_layer_bases_in_mode_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2162 of file layer.c.
References base_is_in_mode(), BKE_base_is_visible(), BLI_Iterator::current, BLI_Iterator::data, data, Base::next, and BLI_Iterator::valid.
Referenced by BKE_view_layer_bases_in_mode_iterator_begin().
void BKE_view_layer_blend_read_data | ( | struct BlendDataReader * | reader, |
struct ViewLayer * | view_layer | ||
) |
Definition at line 2315 of file layer.c.
References ViewLayer::active_aov, ViewLayer::active_collection, ViewLayer::active_lightgroup, ViewLayer::aovs, ViewLayer::basact, BLI_listbase_clear(), BLO_read_data_address, BLO_read_list(), direct_link_layer_collections(), ViewLayer::drawdata, ViewLayer::freestyle_config, ViewLayer::id_properties, IDP_BlendDataRead, ViewLayer::layer_collections, ViewLayer::lightgroups, FreestyleConfig::linesets, FreestyleConfig::modules, NULL, ViewLayer::object_bases, ViewLayer::object_bases_array, ViewLayer::object_bases_hash, ViewLayer::stats, and ObjectsInModeIteratorData::view_layer.
Referenced by BKE_collection_blend_read_data(), and scene_blend_read_data().
void BKE_view_layer_blend_read_lib | ( | struct BlendLibReader * | reader, |
struct Library * | lib, | ||
struct ViewLayer * | view_layer | ||
) |
Definition at line 2357 of file layer.c.
References ViewLayer::basact, BLI_freelinkN(), BLO_read_id_address, ViewLayer::freestyle_config, ViewLayer::id_properties, IDP_BlendReadLib(), ViewLayer::layer_collections, lib, lib_link_layer_collection(), FreestyleConfig::linesets, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, ViewLayer::mat_override, FreestyleConfig::modules, NULL, ViewLayer::object_bases, and ObjectsInModeIteratorData::view_layer.
Referenced by BKE_collection_blend_read_lib(), and scene_blend_read_lib().
void BKE_view_layer_blend_write | ( | struct BlendWriter * | writer, |
struct ViewLayer * | view_layer | ||
) |
Definition at line 2273 of file layer.c.
References ViewLayer::aovs, BLO_write_struct, BLO_write_struct_list, ViewLayer::freestyle_config, ViewLayer::id_properties, IDP_BlendWrite(), ViewLayer::layer_collections, ViewLayer::lightgroups, FreestyleConfig::linesets, LISTBASE_FOREACH, FreestyleConfig::modules, ViewLayer::object_bases, ObjectsInModeIteratorData::view_layer, and write_layer_collections().
Referenced by scene_blend_write().
Fallback for when a Scene has no camera to use.
view_layer | in general you want to use the same ViewLayer that is used for depsgraph. If rendering you pass the scene active layer, when viewing in the viewport you want to get ViewLayer from context. |
Definition at line 311 of file layer.c.
References LISTBASE_FOREACH, NULL, OB_CAMERA, and ViewLayer::object_bases.
Referenced by check_valid_camera(), check_valid_compositing_camera(), screen_set_3dview_camera(), and view_camera_exec().
This is a placeholder to know which areas of the code need to be addressed for the Workspace changes. Never use this, you should typically get the active layer from the context or window.
Referenced by BKE_scene_base_iter_next(), and render_init_from_main().
void BKE_view_layer_copy_data | ( | struct Scene * | scene_dst, |
const struct Scene * | scene_src, | ||
struct ViewLayer * | view_layer_dst, | ||
const struct ViewLayer * | view_layer_src, | ||
int | flag | ||
) |
Only copy internal data of ViewLayer from source to already allocated/initialized destination.
flag | Copying options (see BKE_lib_id.h's LIB_ID_COPY_... flags for more). |
Referenced by scene_copy_data().
Returns the default view layer to render if we need to render just one.
Referenced by _setlooper_base_step(), BKE_scene_base_iter_next(), blender::deg::DepsgraphNodeBuilder::build_view_layer(), blender::deg::DepsgraphRelationBuilder::build_view_layer(), check_valid_camera(), check_valid_compositing_camera(), render_init_depsgraph(), blender::deg::seq_build_prop_cb(), blender::deg::seq_node_build_cb(), seq_prefetch_init_depsgraph(), and seq_render_scene_strip().
Returns the default view layer to view in work-spaces if there is none linked to the workspace yet.
Referenced by buttons_context_path_view_layer(), buttons_texture_users_from_context(), CTX_data_view_layer(), do_version_workspaces_after_lib_link(), ED_scene_view_layer_delete(), setup_app_data(), WM_window_ensure_active_view_layer(), and WM_window_get_active_view_layer().
Returns view layer with matching name, or NULL if not found.
Referenced by BKE_blendfile_library_relocate(), blo_lib_link_restore(), CTX_data_view_layer(), current_screen_compat(), WM_window_ensure_active_view_layer(), WM_window_get_active_view_layer(), and WM_window_set_active_view_layer().
struct ViewLayer* BKE_view_layer_find_from_collection | ( | const struct Scene * | scene, |
struct LayerCollection * | lc | ||
) |
Find the ViewLayer a LayerCollection belongs to.
Referenced by tree_element_layer_collection_activate().
struct ViewLayer* BKE_view_layer_find_with_aov | ( | struct Scene * | scene, |
struct ViewLayerAOV * | view_layer_aov | ||
) |
Definition at line 2503 of file layer.c.
References BLI_findindex(), LISTBASE_FOREACH, NULL, scene, and Scene::view_layers.
struct ViewLayer* BKE_view_layer_find_with_lightgroup | ( | struct Scene * | scene, |
struct ViewLayerLightgroup * | view_layer_lightgroup | ||
) |
Definition at line 2581 of file layer.c.
References BLI_findindex(), LISTBASE_FOREACH, NULL, scene, and Scene::view_layers.
Definition at line 239 of file layer.c.
References BKE_view_layer_free_ex().
Referenced by ED_scene_view_layer_delete().
Free (or release) any data used by this ViewLayer.
Definition at line 244 of file layer.c.
References ViewLayer::active_aov, ViewLayer::active_lightgroup, ViewLayer::aovs, ViewLayer::basact, BKE_freestyle_config_free(), BLI_freelistN(), BLI_ghash_free(), ViewLayer::drawdata, ViewLayer::freestyle_config, ViewLayer::id_properties, IDP_FreeProperty_ex(), layer_collection_free(), ViewLayer::layer_collections, ViewLayer::lightgroups, LISTBASE_FOREACH, MEM_freeN, MEM_SAFE_FREE, NULL, ViewLayer::object_bases, ViewLayer::object_bases_array, ViewLayer::object_bases_hash, and ViewLayer::stats.
Referenced by BKE_view_layer_free(), and scene_free_data().
bool BKE_view_layer_has_collection | ( | const struct ViewLayer * | view_layer, |
const struct Collection * | collection | ||
) |
See if view layer has the scene collection linked directly, or indirectly (nested).
Referenced by BKE_collection_parent_editable_find_recursive(), BKE_scene_find_from_collection(), CTX_data_layer_collection(), lib_override_library_create_post_process(), make_override_library_exec(), and make_override_library_invoke().
Check if the given view layer has at least one valid AOV.
Definition at line 2493 of file layer.c.
References AOV_CONFLICT, ViewLayer::aovs, and LISTBASE_FOREACH.
Referenced by blender::bke::tests::TEST(), and blender::bke::tests::test_render_pass_conflict().
struct Object* BKE_view_layer_non_active_selected_object | ( | struct ViewLayer * | view_layer, |
const struct View3D * | v3d | ||
) |
Use this in rare cases we need to detect a pair of objects (active, selected). This returns the other non-active selected object.
Returns NULL with it finds multiple other selected objects as behavior in this case would be random from the user perspective.
Definition at line 186 of file layer_utils.c.
References FOREACH_SELECTED_OBJECT_BEGIN, FOREACH_SELECTED_OBJECT_END, NULL, and OBACT.
Referenced by gpencil_bake_mesh_animation_exec(), and gpencil_trace_image_exec().
void BKE_view_layer_remove_aov | ( | struct ViewLayer * | view_layer, |
struct ViewLayerAOV * | aov | ||
) |
Definition at line 2433 of file layer.c.
References ViewLayer::active_aov, ViewLayer::aovs, BLI_assert, BLI_findindex(), BLI_freelinkN(), ViewLayerAOV::next, NULL, ViewLayerAOV::prev, and viewlayer_aov_active_set().
Referenced by blender::bke::tests::TEST(), and view_layer_remove_aov_exec().
void BKE_view_layer_remove_lightgroup | ( | struct ViewLayer * | view_layer, |
struct ViewLayerLightgroup * | lightgroup | ||
) |
Definition at line 2561 of file layer.c.
References ViewLayer::active_lightgroup, BLI_assert, BLI_findindex(), BLI_freelinkN(), ViewLayer::lightgroups, ViewLayerLightgroup::next, NULL, ViewLayerLightgroup::prev, and viewlayer_lightgroup_active_set().
Referenced by view_layer_remove_lightgroup_exec(), and view_layer_remove_unused_lightgroups_exec().
void BKE_view_layer_rename | ( | struct Main * | bmain, |
struct Scene * | scene, | ||
struct ViewLayer * | view_layer, | ||
const char * | name | ||
) |
Definition at line 534 of file layer.c.
References BKE_animdata_fix_paths_rename_all(), BLI_findindex(), BLI_strncpy(), BLI_strncpy_utf8(), BLI_uniquename(), CMP_NODE_R_LAYERS, DATA_, DEG_id_tag_update(), ListBase::first, Scene::id, LISTBASE_FOREACH, ViewLayer::name, node, NODE_MAXSTR, bNodeTree::nodes, Scene::nodetree, NULL, scene, STREQ, STRNCPY, Scene::view_layers, wmWindowManager::windows, and Main::wm.
Referenced by blo_update_defaults_scene(), and namebutton_fn().
void BKE_view_layer_rename_lightgroup | ( | struct Scene * | scene, |
ViewLayer * | view_layer, | ||
ViewLayerLightgroup * | lightgroup, | ||
const char * | name | ||
) |
Definition at line 2592 of file layer.c.
References BLI_strncpy_utf8(), FOREACH_SCENE_OBJECT_BEGIN, FOREACH_SCENE_OBJECT_END, ID_IS_LINKED, World::lightgroup, ViewLayerLightgroup::name, LightgroupMembership::name, NULL, scene, STREQ, viewlayer_lightgroup_make_name_unique(), and Scene::world.
void BKE_view_layer_selected_bases_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2088 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().
void BKE_view_layer_selected_bases_iterator_end | ( | BLI_Iterator * | iter | ) |
Definition at line 2098 of file layer.c.
References object_bases_iterator_end().
void BKE_view_layer_selected_bases_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2093 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and object_bases_iterator_next().
void BKE_view_layer_selected_editable_objects_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2054 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, BKE_object_is_libdata(), BKE_view_layer_selected_editable_objects_iterator_next(), BLI_Iterator::current, objects_iterator_begin(), and BLI_Iterator::valid.
void BKE_view_layer_selected_editable_objects_iterator_end | ( | BLI_Iterator * | iter | ) |
Definition at line 2077 of file layer.c.
References objects_iterator_end().
void BKE_view_layer_selected_editable_objects_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2068 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, BKE_object_is_libdata(), BLI_Iterator::current, objects_iterator_next(), and BLI_Iterator::valid.
Referenced by BKE_view_layer_selected_editable_objects_iterator_begin().
void BKE_view_layer_selected_objects_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2012 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().
void BKE_view_layer_selected_objects_iterator_end | ( | BLI_Iterator * | iter | ) |
Definition at line 2022 of file layer.c.
References objects_iterator_end().
void BKE_view_layer_selected_objects_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2017 of file layer.c.
References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_next().
Tag all the selected objects of a render-layer.
Definition at line 286 of file layer.c.
References BASE_SELECTED, LISTBASE_FOREACH, and ViewLayer::object_bases.
Referenced by make_single_user_exec().
void BKE_view_layer_set_active_aov | ( | struct ViewLayer * | view_layer, |
struct ViewLayerAOV * | aov | ||
) |
Definition at line 2448 of file layer.c.
References viewlayer_aov_active_set().
void BKE_view_layer_set_active_lightgroup | ( | struct ViewLayer * | view_layer, |
struct ViewLayerLightgroup * | lightgroup | ||
) |
Definition at line 2576 of file layer.c.
References viewlayer_lightgroup_active_set().
void BKE_view_layer_verify_aov | ( | struct RenderEngine * | engine, |
struct Scene * | scene, | ||
struct ViewLayer * | view_layer | ||
) |
Update the naming and conflicts of the AOVs.
Name must be unique between all AOVs. Conflicts with render passes will show a conflict icon. Reason is that switching a render engine or activating a render pass could lead to other conflicts that wouldn't be that clear for the user.
Definition at line 2476 of file layer.c.
References AOV_CONFLICT, ViewLayer::aovs, bke_view_layer_verify_aov_cb(), BLI_ghash_free(), BLI_ghash_lookup(), BLI_ghash_str_new(), count, LISTBASE_FOREACH, MEM_freeN, NULL, POINTER_AS_INT, RE_engine_update_render_passes(), scene, SET_FLAG_FROM_TEST, and viewlayer_aov_make_name_unique().
Referenced by blender::bke::tests::TEST(), blender::bke::tests::test_render_pass_conflict(), view_layer_add_aov_exec(), and view_layer_remove_aov_exec().
void BKE_view_layer_visible_bases_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2109 of file layer.c.
References object_bases_iterator_begin().
void BKE_view_layer_visible_bases_iterator_end | ( | BLI_Iterator * | iter | ) |
Definition at line 2119 of file layer.c.
References object_bases_iterator_end().
void BKE_view_layer_visible_bases_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2114 of file layer.c.
References object_bases_iterator_next().
void BKE_view_layer_visible_objects_iterator_begin | ( | BLI_Iterator * | iter, |
void * | data_in | ||
) |
Definition at line 2033 of file layer.c.
References objects_iterator_begin().
void BKE_view_layer_visible_objects_iterator_end | ( | BLI_Iterator * | iter | ) |
Definition at line 2043 of file layer.c.
References objects_iterator_end().
void BKE_view_layer_visible_objects_iterator_next | ( | BLI_Iterator * | iter | ) |
Definition at line 2038 of file layer.c.
References objects_iterator_next().