83 screen =
static_cast<bScreen *
>(screen->id.next))
127 sync_types->
object = !sequence_view;
144 sync_types->
object = !sequence_view &&
181 selected_objects.
add(base);
183 else if (!selected_objects.
contains(base)) {
198 short bone_flag = ebone->
flag;
203 selected_ebones.
add(ebone);
205 else if (!selected_ebones.
contains(ebone)) {
214 if (bone_flag != ebone->
flag) {
230 short bone_flag = pchan->
flag;
236 selected_pbones.
add(pchan);
238 else if (!selected_pbones.
contains(pchan)) {
244 if (bone_flag != pchan->
flag) {
253 if (!sequencer_scene) {
293 scene, view_layer, te, tselem, selected_items->
edit_bones);
308 workspace, scene, view_layer, &te->subtree, sync_types, selected_items);
369 const bool is_selected = (base !=
nullptr) && ((base->
flag &
BASE_SELECTED) != 0);
371 if (base && (ob == obact)) {
392 if (ebone == ebone_active) {
413 if (pchan == pchan_active) {
435 if (strip == strip_active) {
498 scene, view_layer, space_outliner, &te->subtree, active_data, sync_types);
522 tvc, space_outliner, &sync_types);
532 &space_outliner->
tree,
Functions to deal with Armatures.
WorkSpace * CTX_wm_workspace(const bContext *C)
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)
Scene * CTX_data_sequencer_scene(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
bool bone_is_selectable(const bArmature *armature, const bPoseChannel *pchan)
void base_select(Base *base, eObjectSelect_Mode mode)
static void outliner_sync_selection_from_outliner(WorkSpace *workspace, Scene *scene, ViewLayer *view_layer, ListBase *tree, const SyncSelectTypes *sync_types, SelectedItems *selected_items)
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_to_strip(WorkSpace *workspace, const TreeElement *te)
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_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)
struct Scene * sequencer_scene
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)