82 screen =
static_cast<bScreen *
>(screen->id.next))
126 sync_types->
object = !sequence_view;
143 sync_types->
object = !sequence_view &&
180 selected_objects.
add(base);
182 else if (!selected_objects.
contains(base)) {
197 short bone_flag = ebone->
flag;
202 selected_ebones.
add(ebone);
204 else if (!selected_ebones.
contains(ebone)) {
213 if (bone_flag != ebone->
flag) {
229 short bone_flag = pchan->
bone->
flag;
235 selected_pbones.
add(pchan);
237 else if (!selected_pbones.
contains(pchan)) {
243 if (bone_flag != pchan->
bone->
flag) {
287 scene, view_layer, te, tselem, selected_items->
edit_bones);
302 scene, view_layer, &te->subtree, sync_types, selected_items);
331 scene, view_layer, &space_outliner->
tree, &sync_types, &selected_items);
363 const bool is_selected = (base !=
nullptr) && ((base->
flag &
BASE_SELECTED) != 0);
365 if (base && (ob == obact)) {
386 if (ebone == ebone_active) {
408 if (pchan == pchan_active) {
430 if (strip == strip_active) {
493 scene, view_layer, space_outliner, &te->subtree, active_data, sync_types);
516 tvc, space_outliner, &sync_types);
526 &space_outliner->
tree,
Functions to deal with Armatures.
#define PBONE_SELECTABLE(arm, bone)
bPoseChannel * CTX_data_active_pose_bone(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
EditBone * CTX_data_active_bone(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_active_object_get(const ViewLayer *view_layer)
Base * BKE_view_layer_base_find(ViewLayer *view_layer, Object *ob)
Object * BKE_view_layer_edit_object_get(const ViewLayer *view_layer)
#define LISTBASE_FOREACH(type, var, list)
void DEG_id_tag_update(ID *id, unsigned int flags)
#define BASE_SELECTED(v3d, base)
#define BASE_SELECTABLE(v3d, base)
@ WM_OUTLINER_SYNC_SELECT_FROM_SEQUENCE
@ WM_OUTLINER_SYNC_SELECT_FROM_OBJECT
@ WM_OUTLINER_SYNC_SELECT_FROM_EDIT_BONE
@ WM_OUTLINER_SYNC_SELECT_FROM_POSE_BONE
#define WM_OUTLINER_SYNC_SELECT_FROM_ALL
#define EBONE_SELECTABLE(arm, ebone)
void ED_armature_ebone_select_set(EditBone *ebone, bool select)
bool contains(const Key &key) const
Strip & get_strip() const
void base_select(Base *base, eObjectSelect_Mode mode)
static void outliner_select_sync_from_pose_bone(bPoseChannel *pchan_active, TreeElement *te, TreeStoreElem *tselem)
static void outliner_sync_select_from_outliner_set_types(bContext *C, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
static void outliner_select_sync_from_object(const Scene *scene, ViewLayer *view_layer, Object *obact, TreeElement *te, TreeStoreElem *tselem)
static void outliner_select_sync_to_edit_bone(const Scene *scene, ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, Set< EditBone * > &selected_ebones)
static void outliner_select_sync_from_edit_bone(EditBone *ebone_active, TreeElement *te, TreeStoreElem *tselem)
static void outliner_select_sync_from_strip(Strip *strip_active, const TreeElement *te)
static void get_sync_select_active_data(const bContext *C, SyncSelectActiveData *active_data)
static void outliner_sync_selection_to_outliner(const Scene *scene, ViewLayer *view_layer, SpaceOutliner *space_outliner, ListBase *tree, SyncSelectActiveData *active_data, const SyncSelectTypes *sync_types)
static bool outliner_sync_select_to_outliner_set_types(const TreeViewContext &tvc, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
static void outliner_select_sync_to_pose_bone(TreeElement *te, TreeStoreElem *tselem, Set< bPoseChannel * > &selected_pbones)
void outliner_viewcontext_init(const bContext *C, TreeViewContext *tvc)
TreeElementT * tree_element_cast(const TreeElement *te)
void outliner_sync_selection(const bContext *C, const TreeViewContext &tvc, SpaceOutliner *space_outliner)
static void outliner_select_sync_to_strip(Scene *scene, const TreeElement *te)
static void outliner_sync_selection_from_outliner(Scene *scene, ViewLayer *view_layer, ListBase *tree, const SyncSelectTypes *sync_types, SelectedItems *selected_items)
static void outliner_select_sync_to_object(ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, Set< Base * > &selected_objects)
Strip * select_active_get(const Scene *scene)
void select_active_set(Scene *scene, Strip *strip)
void ED_outliner_select_sync_from_object_tag(bContext *C)
void ED_outliner_select_sync_from_edit_bone_tag(bContext *C)
void ED_outliner_select_sync_from_pose_bone_tag(bContext *C)
void ED_outliner_select_sync_from_sequence_tag(const bContext *C)
void ED_outliner_select_sync_from_outliner(bContext *C, SpaceOutliner *space_outliner)
void ED_outliner_select_sync_from_all_tag(bContext *C)
bool ED_outliner_select_sync_is_dirty(const bContext *C)
void ED_outliner_select_sync_flag_outliners(const bContext *C)
Set< bPoseChannel * > pose_bones
Set< EditBone * > edit_bones
bPoseChannel * pose_channel
short outliner_sync_select_dirty
void WM_main_add_notifier(uint type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)