Blender V4.3
layer_utils.cc File Reference
#include <cstring>
#include "BKE_collection.hh"
#include "BKE_customdata.hh"
#include "BKE_editmesh.hh"
#include "BKE_layer.hh"
#include "BKE_mesh_types.hh"
#include "DNA_ID.h"
#include "DNA_layer_types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Functions

Selected Object Array
Vector< Object * > BKE_view_layer_array_selected_objects_params (ViewLayer *view_layer, const View3D *v3d, const ObjectsInViewLayerParams *params)
 
Objects in Mode Array
Vector< Base * > BKE_view_layer_array_from_bases_in_mode_params (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, const ObjectsInModeParams *params)
 
Vector< Object * > BKE_view_layer_array_from_objects_in_mode_params (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, const ObjectsInModeParams *params)
 
Vector< Object * > BKE_view_layer_array_from_objects_in_edit_mode (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Vector< Base * > BKE_view_layer_array_from_bases_in_edit_mode (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Vector< Object * > BKE_view_layer_array_from_objects_in_edit_mode_unique_data (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Vector< Base * > BKE_view_layer_array_from_bases_in_edit_mode_unique_data (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Vector< Object * > BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Vector< Object * > BKE_view_layer_array_from_objects_in_mode_unique_data (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, const eObjectMode mode)
 
ListBaseBKE_view_layer_object_bases_get (ViewLayer *view_layer)
 
BaseBKE_view_layer_active_base_get (ViewLayer *view_layer)
 
LayerCollectionBKE_view_layer_active_collection_get (ViewLayer *view_layer)
 
Filter Functions
bool BKE_view_layer_filter_edit_mesh_has_uvs (const Object *ob, void *)
 
bool BKE_view_layer_filter_edit_mesh_has_edges (const Object *ob, void *)
 
ObjectBKE_view_layer_non_active_selected_object (const Scene *scene, ViewLayer *view_layer, const View3D *v3d)
 
Active object accessors.
ObjectBKE_view_layer_active_object_get (const ViewLayer *view_layer)
 
ObjectBKE_view_layer_edit_object_get (const ViewLayer *view_layer)
 

Function Documentation

◆ BKE_view_layer_active_base_get()

Base * BKE_view_layer_active_base_get ( ViewLayer * view_layer)

Definition at line 198 of file layer_utils.cc.

References ViewLayer::basact, BLI_assert_msg, ViewLayer::flag, and VIEW_LAYER_OUT_OF_SYNC.

Referenced by blender::ed::object::add_hook_object_new(), blender::ed::object::add_type_with_obdata(), BKE_object_pose_base_array_get_ex(), BKE_view_layer_active_object_get(), bone_select_menu_exec(), calculateCenterActive(), blender::ed::outliner::collection_hierarchy_delete_exec(), DRW_object_wire_theme_get(), blender::ed::object::duplicate_exec(), ED_armature_edit_select_pick_bone(), ED_curve_editnurb_select_pick(), ED_lattice_select_pick(), ED_mball_select_pick(), ed_object_select_pick(), ED_undo_editmode_bases_from_view_layer(), ED_undo_editmode_objects_from_view_layer(), edbm_polybuild_delete_at_cursor_invoke(), edbm_polybuild_dissolve_at_cursor_invoke(), edbm_polybuild_face_at_cursor_invoke(), edbm_polybuild_split_at_cursor_invoke(), edbm_polybuild_transform_at_cursor_invoke(), edbm_preselect_or_active(), EDBM_select_pick(), edbm_shortest_path_pick_invoke(), edcu_shortest_path_pick_invoke(), blender::ed::object::find_first_by_data_id(), blender::ed::object::get_new_constraint_target(), gizmo_3d_foreach_selected(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), blender::draw::overlay::Instance::init(), iter_snap_objects(), blender::ed::object::jump_to_object(), mouse_select_eval_buffer(), mouse_select_object_center(), object_select_menu_exec(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_element_visible_get(), snap_target_select_from_spacetype(), view3d_context(), view3d_panel_transform_poll(), WIDGETGROUP_armature_spline_poll(), WIDGETGROUP_camera_poll(), WIDGETGROUP_empty_image_poll(), WIDGETGROUP_forcefield_poll(), WIDGETGROUP_light_area_poll(), WIDGETGROUP_light_point_poll(), WIDGETGROUP_light_spot_poll(), and WIDGETGROUP_light_target_poll().

◆ BKE_view_layer_active_collection_get()

LayerCollection * BKE_view_layer_active_collection_get ( ViewLayer * view_layer)

◆ BKE_view_layer_active_object_get()

Object * BKE_view_layer_active_object_get ( const ViewLayer * view_layer)

Definition at line 274 of file layer_utils.cc.

References BKE_view_layer_active_base_get(), and Base::object.

Referenced by actedit_get_shapekeys(), ANIM_animdata_get_context(), animdata_filter_dopesheet(), BKE_lib_override_library_create(), BKE_lib_override_library_main_resync(), BKE_object_pose_array_get_ex(), BKE_paint_get_active(), BKE_paint_get_active_from_context(), BKE_paintmode_get_active_from_context(), BKE_view_layer_edit_object_get(), BKE_view_layer_non_active_selected_object(), buttons_context_path_object(), buttons_shading_context(), buttons_shading_new_context(), buttons_texture_users_from_context(), calculateCenterActive(), blender::ed::object::clear_override_library_exec(), convert_type_get(), create_trans_data(), createTransGPencil(), createTransParticleVerts(), createTransSculpt(), createTransTexspace(), do_view3d_region_buttons(), do_view3d_vgroup_buttons(), drawTransformPixel(), DRW_draw_depth_loop(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), DRW_notify_view_update(), drw_notify_view_update_offscreen(), ED_armature_pose_select_in_wpaint_mode(), ED_armature_pose_select_pick_bone(), ED_editors_init_for_undo(), ED_info_draw_stats(), ED_screen_scene_change(), ED_transform_calc_orientation_from_type(), ED_undo_is_legacy_compatible_for_property(), ED_undo_is_memfile_compatible(), ED_undo_object_set_active_or_warn(), ED_view3d_datamask(), blender::ed::object::editmode_toggle_exec(), flushTransParticles(), geometry_node_tree_get_from_context(), get_affected_rna_paths_from_transform_mode(), get_orientation_object(), get_stats_string(), blender::ed::outliner::get_sync_select_active_data(), gizmo_3d_calc_pos(), gizmo_3d_transform_space_object_get(), gizmo_light_radius_prop_matrix_get(), gizmo_light_radius_prop_matrix_set(), gizmo_spot_blend_prop_matrix_get(), gizmo_spot_blend_prop_matrix_set(), blender::ed::outliner::id_override_library_clear_single_process(), image_listener(), initTransInfo(), lib_override_library_resync(), blender::ed::object::mode_set_ex(), blender::ed::object::modifier_remove_exec(), blender::ed::object::object_convert_exec(), blender::bke::object_get_datamask(), blender::ed::sculpt_paint::object_sculpt_mode_enter(), blender::ed::sculpt_paint::object_sculpt_mode_exit(), blender::ed::object::object_select_grouped_exec(), blender::ed::object::object_select_linked_exec(), blender::draw::overlay::Origins::object_sync(), blender::ed::object::object_transform_to_mouse_exec(), blender::ed::object::objects_in_mode_or_selected(), blender::ed::object::objects_remove_active_exec(), blender::ed::outliner::outliner_is_co_within_active_mode_column(), blender::ed::outliner::outliner_show_active_get_element(), blender::ed::outliner::outliner_viewcontext_init(), OVERLAY_object_center(), override_idtemplate_clear_exec(), paint_sample_color(), particle_system_remove_exec(), particle_undosys_poll(), particle_undosys_step_encode(), PE_minmax(), psys_in_edit_mode(), recalcData_actedit(), recalcData_graphedit(), recalcData_sculpt(), blender::ed::sculpt_paint::undo::restore_list(), rigidbody_con_add_exec(), rigidbody_con_remove_exec(), saveTransform(), screen_ctx_active_bone(), screen_ctx_active_object(), screen_ctx_active_pose_bone(), screen_ctx_grease_pencil_data(), screen_ctx_image_paint_object(), screen_ctx_object(), screen_ctx_objects_in_mode(), screen_ctx_objects_in_mode_unique_data(), screen_ctx_particle_edit_object(), screen_ctx_pose_object(), screen_ctx_sculpt_object(), screen_ctx_selected_pose_bones(), screen_ctx_selected_pose_bones_from_active_object(), screen_ctx_vertex_paint_object(), screen_ctx_visible_pose_bones(), screen_ctx_weight_paint_object(), blender::ed::sculpt_paint::sculpt_mode_toggle_exec(), set_orientation_poll(), setSnappingCallback(), blender::ed::object::shade_poll(), blender::ed::object::shade_smooth_exec(), shader_get_from_context(), special_aftertrans_update__sculpt(), stats_update(), blender::ed::sculpt_paint::undo::step_decode(), texture_get_from_context(), texture_paint_camera_project_exec(), blender::ed::sculpt_paint::image::ops::paint::texture_paint_init(), blender::ed::outliner::tree_element_active_material_get(), blender::ed::outliner::tree_element_bone_activate(), blender::ed::outliner::tree_element_bone_state_get(), blender::ed::outliner::tree_element_defgroup_state_get(), blender::ed::outliner::tree_element_material_activate(), blender::ed::outliner::tree_element_object_activate(), txt_add_object(), uiTemplateHeader3D_mode(), uiTemplatePaintModeSelection(), update_active_vertex_weight(), v3d_cursor_snap_update(), blender::ed::object::vertex_parent_set_exec(), view3d_draw_region_info(), view3d_main_region_message_subscribe(), view3d_orbit_calc_center(), view3d_panel_transform(), view3d_panel_vgroup(), view3d_panel_vgroup_poll(), view3d_ruler_item_mousemove(), view_camera_exec(), viewselected_exec(), WIDGETGROUP_armature_spline_refresh(), WIDGETGROUP_armature_spline_setup(), WIDGETGROUP_camera_message_subscribe(), WIDGETGROUP_camera_refresh(), WIDGETGROUP_camera_setup(), WIDGETGROUP_camera_view_poll(), WIDGETGROUP_empty_image_refresh(), WIDGETGROUP_forcefield_refresh(), WIDGETGROUP_light_area_refresh(), WIDGETGROUP_light_point_draw_prepare(), WIDGETGROUP_light_spot_draw_prepare(), WIDGETGROUP_light_spot_refresh(), WIDGETGROUP_light_target_draw_prepare(), WM_toolsystem_mode_from_spacetype(), and WM_toolsystem_ref_sync_from_context().

◆ BKE_view_layer_array_from_bases_in_edit_mode()

◆ BKE_view_layer_array_from_bases_in_edit_mode_unique_data()

◆ BKE_view_layer_array_from_bases_in_mode_params()

◆ BKE_view_layer_array_from_objects_in_edit_mode()

Vector< Object * > BKE_view_layer_array_from_objects_in_edit_mode ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d )

◆ BKE_view_layer_array_from_objects_in_edit_mode_unique_data()

Vector< Object * > BKE_view_layer_array_from_objects_in_edit_mode_unique_data ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d )

Definition at line 150 of file layer_utils.cc.

References BKE_view_layer_array_from_objects_in_mode_params(), OB_MODE_EDIT, and params.

Referenced by armature_autoside_names_exec(), armature_calc_roll_exec(), armature_de_select_less_exec(), armature_de_select_more_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_flip_names_exec(), armature_hide_exec(), armature_parent_clear_exec(), armature_reveal_exec(), armature_roll_clear_exec(), armature_select_linked_exec(), armature_select_mirror_exec(), armature_split_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), clear_tilt_exec(), cube_project_exec(), curve_decimate_exec(), curve_delete_exec(), curve_dissolve_exec(), curve_extrude_exec(), curve_normals_make_consistent_exec(), curve_select_less_exec(), curve_select_more_exec(), curve_select_random_exec(), curve_select_similar_exec(), curve_smooth_radius_exec(), curve_smooth_tilt_exec(), curve_smooth_weight_exec(), curve_split_exec(), cylinder_project_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), delete_metaelems_exec(), duplicate_exec(), duplicate_metaelems_exec(), ED_curve_editnurb_select_pick(), ED_lattice_select_pick(), edbm_add_edge_face_exec(), edbm_average_normals_exec(), edbm_beautify_fill_exec(), edbm_bevel_init(), edbm_blend_from_shape_exec(), edbm_bridge_edge_loops_exec(), edbm_collapse_edge_exec(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), edbm_delete_exec(), edbm_delete_loose_exec(), edbm_dissolve_degenerate_exec(), edbm_dissolve_edges_exec(), edbm_dissolve_faces_exec(), edbm_dissolve_limited_exec(), edbm_dissolve_verts_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_duplicate_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_exec(), edbm_extrude_context_exec(), edbm_extrude_edges_exec(), edbm_extrude_faces_exec(), edbm_extrude_region_exec(), edbm_extrude_repeat_exec(), edbm_extrude_verts_exec(), edbm_face_make_planar_exec(), edbm_face_split_by_edges_exec(), edbm_faces_select_interior_exec(), edbm_faces_shade_flat_exec(), edbm_faces_shade_smooth_exec(), edbm_fill_exec(), edbm_fill_grid_exec(), edbm_fill_holes_exec(), edbm_flag_disable_all_multi(), edbm_flip_normals_exec(), edbm_flip_quad_tessellation_exec(), edbm_hide_exec(), edbm_inset_init(), edbm_intersect_boolean_exec(), edbm_intersect_exec(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), edbm_merge_exec(), edbm_mod_weighted_strength_exec(), edbm_normals_make_consistent_exec(), edbm_normals_tools_exec(), edbm_poke_face_exec(), edbm_quads_convert_to_tris_exec(), edbm_region_to_loop_exec(), edbm_remove_doubles_exec(), edbm_reveal_exec(), edbm_reverse_colors_exec(), edbm_reverse_uvs_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rotate_colors_exec(), edbm_rotate_uvs_exec(), edbm_screw_exec(), edbm_select_all_exec(), edbm_select_by_attribute_exec(), edbm_select_face_by_sides_exec(), edbm_select_less_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_loose_exec(), edbm_select_mirror_exec(), edbm_select_more_exec(), edbm_select_non_manifold_exec(), edbm_select_nth_exec(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_ungrouped_exec(), EDBM_selectmode_set_multi(), EDBM_selectmode_toggle_multi(), edbm_set_normals_from_faces_exec(), edbm_shape_propagate_to_all_exec(), edbm_shortest_path_select_exec(), edbm_smooth_normals_exec(), edbm_solidify_exec(), edbm_sort_elements_exec(), edbm_spin_exec(), edbm_split_exec(), edbm_subdivide_edge_ring_exec(), edbm_subdivide_exec(), edbm_tris_convert_to_quads_exec(), edbm_vert_connect_concave_exec(), edbm_vert_connect_exec(), edbm_vert_connect_nonplaner_exec(), edbm_vert_connect_path_exec(), edbm_wireframe_exec(), hide_exec(), knifeproject_exec(), knifetool_invoke(), lattice_flip_exec(), lattice_select_all_exec(), lattice_select_mirror_exec(), lattice_select_more_less(), lattice_select_random_exec(), lattice_select_ungrouped_exec(), make_regular_exec(), make_segment_exec(), mesh_bisect_exec(), mesh_bisect_invoke(), blender::ed::mesh::set_attribute::mesh_set_attribute_exec(), mesh_symmetrize_exec(), mesh_symmetry_snap_exec(), normals_split_merge(), op_generic_value_invoke(), reset_exec(), reveal_exec(), screen_ctx_selected_bones_(), screen_ctx_visible_or_editable_bones_(), select_linked_exec(), select_next_exec(), select_nth_exec(), select_previous_exec(), select_random_metaelems_exec(), select_similar_bone_collection(), select_similar_bone_color(), select_similar_direction(), select_similar_length(), select_similar_prefix(), select_similar_suffix(), set_goal_weight_exec(), set_handle_type_exec(), set_radius_exec(), blender::ed::mesh::set_sharpness_by_angle_exec(), set_spline_type_exec(), shade_smooth_exec(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), smart_project_exec(), smooth_exec(), snap_curs_to_sel_ex(), snap_sel_to_grid_exec(), snap_selected_to_location(), sphere_project_exec(), spin_exec(), subdivide_exec(), switch_direction_exec(), toggle_cyclic_exec(), unwrap_exec(), and uv_from_view_exec().

◆ BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs()

◆ BKE_view_layer_array_from_objects_in_mode_params()

◆ BKE_view_layer_array_from_objects_in_mode_unique_data()

Vector< Object * > BKE_view_layer_array_from_objects_in_mode_unique_data ( const Scene * scene,
ViewLayer * view_layer,
const View3D * v3d,
const eObjectMode mode )

◆ BKE_view_layer_array_selected_objects_params()

◆ BKE_view_layer_edit_object_get()

◆ BKE_view_layer_filter_edit_mesh_has_edges()

bool BKE_view_layer_filter_edit_mesh_has_edges ( const Object * ob,
void * user_data )

Definition at line 231 of file layer_utils.cc.

References Object::data, OB_MESH, and Object::type.

◆ BKE_view_layer_filter_edit_mesh_has_uvs()

bool BKE_view_layer_filter_edit_mesh_has_uvs ( const Object * ob,
void * user_data )

◆ BKE_view_layer_non_active_selected_object()

Object * BKE_view_layer_non_active_selected_object ( const Scene * scene,
ViewLayer * view_layer,
const 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 244 of file layer_utils.cc.

References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), FOREACH_SELECTED_OBJECT_BEGIN, and FOREACH_SELECTED_OBJECT_END.

◆ BKE_view_layer_object_bases_get()

ListBase * BKE_view_layer_object_bases_get ( ViewLayer * view_layer)

Definition at line 191 of file layer_utils.cc.

References BLI_assert_msg, ViewLayer::flag, ViewLayer::object_bases, and VIEW_LAYER_OUT_OF_SYNC.

Referenced by _setlooper_base_step(), animdata_filter_dopesheet(), animdata_filter_ds_sorted_bases(), animdata_filter_grease_pencil(), bc_get_children(), BKE_base_set_visible(), BKE_collection_or_layer_objects(), BKE_layer_collection_local_sync(), BKE_light_linking_select_receivers_of_emitter(), BKE_mball_basis_find(), BKE_object_relational_superset(), BKE_scene_base_flag_to_objects(), BKE_scene_base_iter_next(), BKE_scene_object_find(), BKE_scene_object_find_by_name(), BKE_scene_set_background(), BKE_view_layer_base_deselect_all(), BKE_view_layer_blend_write(), BKE_view_layer_camera_find(), BKE_view_layer_selected_objects_tag(), blender::deg::DepsgraphNodeBuilder::build_scene_speakers(), blender::deg::DepsgraphRelationBuilder::build_scene_speakers(), blender::deg::DepsgraphNodeBuilder::build_view_layer(), blender::deg::DepsgraphRelationBuilder::build_view_layer(), clean_viewport_memory(), clear_trans_object_base_flags(), click_select_channel_object(), count_proportional_objects(), createTransObject(), blender::io::SubdivModifierDisabler::disable_modifiers(), do_lasso_select_objects(), do_object_box_select(), blender::ed::outliner::do_outliner_object_select_recursive(), do_version_layers_to_collections(), ED_localview_exit_if_empty(), ed_object_select_pick(), ED_undo_editmode_bases_from_view_layer(), ED_undo_editmode_objects_from_view_layer(), blender::ed::object::editmode_exit_multi_ex(), blender::ed::object::find_first_by_data_id(), gizmo_3d_foreach_selected(), CryptomatteSession::init(), iter_snap_objects(), layer_eval_view_layer(), localview_remove_from_exec(), mouse_nla_tracks(), mouse_select_eval_buffer(), mouse_select_object_center(), object_bases_iterator_begin(), object_circle_select(), object_deselect_all_except(), object_deselect_all_visible(), blender::ed::object::object_hide_view_clear_exec(), blender::ed::object::object_hide_view_set_exec(), blender::ed::object::object_select_more_less(), blender::ed::outliner::outliner_batch_delete_object_hierarchy_tag(), blender::ed::outliner::outliner_unhide_all_exec(), blender::ed::space_node::preview_prepare_scene(), preview_prepare_scene(), blender::io::grease_pencil::GreasePencilExporter::retrieve_objects(), scene_foreach_id(), screen_ctx_editable_objects(), screen_ctx_selectable_objects(), screen_ctx_selected_editable_objects(), screen_ctx_selected_objects(), screen_ctx_visible_objects(), set_trans_object_base_flags(), switch_preview_floor_visibility(), trans_object_base_deps_flag_finish(), trans_object_base_deps_flag_prepare(), view3d_all_exec(), view3d_localview_exit(), view3d_localview_init(), view3d_orbit_calc_center(), viewselected_exec(), and blender::ed::object::xform_skip_child_container_item_ensure_from_array().