139 void *filter_user_data,
146 const bool use_objects_in_mode = (ob_active !=
NULL) &&
156 id_pin = sbuts->
pinid;
163 else if ((space_type ==
SPACE_PROPERTIES) && (use_objects_in_mode ==
false)) {
172 else if (ob_active && (ob_active->
mode &
183 if ((ob !=
NULL) && !filter_fn(ob, filter_user_data)) {
186 *r_objects_len = (ob !=
NULL) ? 1 : 0;
187 objects =
MEM_mallocN(
sizeof(*objects) * *r_objects_len, __func__);
196 if (use_objects_in_mode) {
200 {.object_mode = ob_active->
mode,
202 .filter_fn = filter_fn,
203 .filter_userdata = filter_user_data});
210 {.no_dup_data =
true, .filter_fn = filter_fn, .filter_userdata = filter_user_data});
235 bool changed =
false;
266 ot->
name =
"Show Hidden Objects";
268 ot->
idname =
"OBJECT_OT_hide_view_clear";
286 bool changed =
false;
324 ot->
name =
"Hide Objects";
325 ot->
description =
"Temporarily hide objects from the viewport";
326 ot->
idname =
"OBJECT_OT_hide_view_set";
337 ot->
srna,
"unselected", 0,
"Unselected",
"Hide unselected rather than selected objects");
380 #define COLLECTION_INVALID_INDEX -1
401 int icon = ICON_NONE;
403 icon = ICON_LAYER_ACTIVE;
406 icon = ICON_LAYER_USED;
410 lc->collection->id.name + 2,
412 "OBJECT_OT_hide_collection",
447 ot->
name =
"Hide Collection";
448 ot->
description =
"Show only objects in collection (Shift to extend)";
449 ot->
idname =
"OBJECT_OT_hide_collection";
467 "Index of the collection to change visibility",
493 if (ob->data == me) {
512 const bool load_data,
513 const bool free_data)
517 if (obedit ==
NULL) {
530 "Too many vertices for mesh '%s' (%d)",
564 if (load_data ==
false) {
640 if (needs_flush_ptr) {
641 *needs_flush_ptr =
false;
711 if (obedit ==
NULL) {
714 bool changed =
false;
715 const short obedit_type = obedit->
type;
718 Object *ob = base->object;
752 CLOG_WARN(&
LOG,
"Unable to enter edit-mode on library data for object '%s'", ob->
id.
name + 2);
852 const bool is_mode_set = (obact->
mode & mode_flag) != 0;
863 if (obact->
mode & mode_flag) {
865 if ((ob != obact) && (ob->type == obact->
type)) {
875 if ((obact->
mode & mode_flag) == 0) {
877 if ((ob != obact) && (ob->type == obact->
type)) {
887 if (
G.background ==
false) {
916 ot->
name =
"Toggle Edit Mode";
918 ot->
idname =
"OBJECT_OT_editmode_toggle";
949 bool is_mode_set = (obact->
mode & mode_flag) != 0;
963 if (obact == obedit) {
973 if ((ob != obact) && (ob->type ==
OB_ARMATURE) && (ob->mode & mode_flag)) {
996 if (
G.background ==
false) {
1006 ot->
name =
"Toggle Pose Mode";
1007 ot->
idname =
"OBJECT_OT_posemode_toggle";
1008 ot->
description =
"Enable or disable posing/selecting bones";
1073 ot->
name =
"Toggle Force Field";
1075 ot->
idname =
"OBJECT_OT_forcefield_toggle";
1170 bool free_depsgraph =
false;
1177 free_depsgraph =
false;
1181 free_depsgraph =
true;
1202 if (free_depsgraph) {
1263 ot->
name =
"Calculate Object Motion Paths";
1264 ot->
idname =
"OBJECT_OT_paths_calculate";
1265 ot->
description =
"Generate motion paths for the selected objects";
1286 "Computation Range",
1335 ot->
name =
"Update Object Paths";
1336 ot->
idname =
"OBJECT_OT_paths_update";
1337 ot->
description =
"Recalculate motion paths for selected objects";
1376 ot->
name =
"Update All Object Paths";
1377 ot->
idname =
"OBJECT_OT_paths_update_visible";
1378 ot->
description =
"Recalculate all visible motion paths for objects and poses";
1409 if (only_selected) {
1451 ot->
name =
"Clear Object Paths";
1452 ot->
idname =
"OBJECT_OT_paths_clear";
1453 ot->
description =
"Clear path caches for all objects, hold Shift key for selected objects only";
1465 ot->
srna,
"only_selected",
false,
"Only Selected",
"Only clear paths from selected objects");
1477 const bool use_smooth =
STREQ(op->
idname,
"OBJECT_OT_shade_smooth");
1478 bool changed_multi =
false;
1479 bool has_linked_data =
false;
1489 ctx_ob_single_active.
ptr.
data = obact;
1494 if (ctx_objects.
first != &ctx_ob_single_active) {
1518 has_linked_data =
true;
1522 bool changed =
false;
1527 const float auto_smooth_angle =
RNA_float_get(op->
ptr,
"auto_smooth_angle");
1539 changed_multi =
true;
1546 if (ctx_objects.
first != &ctx_ob_single_active) {
1550 if (has_linked_data) {
1561 if (obact !=
NULL) {
1575 ot->
description =
"Render and display faces uniform, using Face Normals";
1576 ot->
idname =
"OBJECT_OT_shade_flat";
1589 ot->
name =
"Shade Smooth";
1590 ot->
description =
"Render and display faces smooth, using interpolated Vertex Normals";
1591 ot->
idname =
"OBJECT_OT_shade_smooth";
1608 "Enable automatic smooth based on smooth/sharp faces/edges and angle between faces");
1616 "Maximum angle between face normals that will be considered as smooth"
1617 "(unused if custom split normals data are available)");
1641 while (
input->identifier) {
1669 const bool use_submode =
STREQ(op->
idname,
"OBJECT_OT_mode_set_with_submode");
1701 if (toggle ==
false) {
1702 if (ob->
mode != mode) {
1726 if (ob->
mode != mode) {
1749 if (mesh_select_mode != 0) {
1765 ot->
name =
"Set Object Mode";
1790 ot->
name =
"Set Object Mode with Sub-mode";
1791 ot->
idname =
"OBJECT_OT_mode_set_with_submode";
1837 const bool is_link =
STREQ(op->
idname,
"OBJECT_OT_link_to_collection");
1847 if (collection ==
NULL) {
1854 op->
reports,
RPT_ERROR,
"Cannot add objects to a library override or linked collection");
1861 char new_collection_name[
MAX_NAME];
1869 if ((single_object !=
NULL) && is_link &&
1874 single_object->
id.
name + 2,
1875 collection->
id.
name + 2);
1895 (single_object !=
NULL) ? single_object->
id.
name + 2 :
"Objects",
1896 is_link ?
"linked" :
"moved",
1897 collection->
id.
name + 2);
1920 int index = menu->
index;
1926 submenu->
index = ++index;
1943 if (*menu ==
NULL) {
2049 "MoveToCollectionData menu - expected eventual memleak");
2078 ot->
name =
"Move to Collection";
2080 ot->
idname =
"OBJECT_OT_move_to_collection";
2096 "Index of the collection to move to",
2103 "new_collection_name",
2107 "Name of the newly added collection");
2117 ot->
name =
"Link to Collection";
2119 ot->
idname =
"OBJECT_OT_link_to_collection";
2135 "Index of the collection to move to",
2142 "new_collection_name",
2146 "Name of the newly added collection");
void animviz_free_motionpath(struct bMotionPath *mpath)
struct bMotionPath * animviz_verify_motionpaths(struct ReportList *reports, struct Scene *scene, struct Object *ob, struct bPoseChannel *pchan)
void BKE_pose_channels_clear_with_null_bone(struct bPose *pose, bool do_id_user)
struct Collection * BKE_collection_add(struct Main *bmain, struct Collection *parent, const char *name)
const char * BKE_collection_ui_name_get(struct Collection *collection)
bool BKE_collection_object_add(struct Main *bmain, struct Collection *collection, struct Object *ob)
void BKE_collection_new_name_get(struct Collection *collection_parent, char *rname)
void BKE_collection_object_move(struct Main *bmain, struct Scene *scene, struct Collection *collection_dst, struct Collection *collection_src, struct Object *ob)
struct Collection * BKE_collection_from_index(struct Scene *scene, int index)
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
struct Base * CTX_data_active_base(const bContext *C)
struct SpaceOutliner * CTX_wm_space_outliner(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct View3D * CTX_wm_view3d(const bContext *C)
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
int CTX_data_selected_editable_objects(const bContext *C, ListBase *list)
struct Main * CTX_data_main(const bContext *C)
void BKE_curve_smooth_flag_set(struct Curve *cu, bool use_smooth)
void BKE_editlattice_load(struct Object *obedit)
void BKE_editlattice_make(struct Object *obedit)
void BKE_editlattice_free(struct Object *ob)
void BKE_editmesh_looptri_and_normals_calc(BMEditMesh *em)
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
struct PartDeflect * BKE_partdeflect_new(int type)
#define FOREACH_SELECTED_OBJECT_BEGIN(_view_layer, _v3d, _instance)
#define BKE_view_layer_array_selected_objects(view_layer, v3d, r_len,...)
void BKE_layer_collection_local_sync(struct ViewLayer *view_layer, const struct View3D *v3d)
#define FOREACH_OBJECT_END
bool BKE_layer_collection_has_selected_objects(struct ViewLayer *view_layer, struct LayerCollection *lc)
void BKE_layer_collection_isolate_global(struct Scene *scene, struct ViewLayer *view_layer, struct LayerCollection *lc, bool extend)
struct LayerCollection * BKE_layer_collection_from_index(struct ViewLayer *view_layer, int index)
#define FOREACH_OBJECT_BEGIN(view_layer, _instance)
int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct LayerCollection *lc)
void BKE_layer_collection_sync(const struct Scene *scene, struct ViewLayer *view_layer)
#define FOREACH_SELECTED_OBJECT_END
#define BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len,...)
void BKE_layer_collection_isolate_local(struct ViewLayer *view_layer, const struct View3D *v3d, struct LayerCollection *lc, bool extend)
bool BKE_id_is_editable(const struct Main *bmain, const struct ID *id)
General operations, lookup, etc. for materials.
void BKE_mesh_smooth_flag_set(struct Mesh *me, bool use_smooth)
void BKE_mesh_batch_cache_dirty_tag(struct Mesh *me, eMeshBatchDirtyMode mode)
void BKE_mesh_auto_smooth_flag_set(struct Mesh *me, bool use_auto_smooth, float auto_smooth_angle)
@ BKE_MESH_BATCH_DIRTY_ALL
struct ModifierData * BKE_modifiers_findby_type(const struct Object *ob, ModifierType type)
General operations, lookup, etc. for blender objects.
bool BKE_object_obdata_is_libdata(const struct Object *ob)
char * BKE_object_data_editmode_flush_ptr_get(struct ID *id)
bool BKE_object_is_in_editmode(const struct Object *ob)
void BKE_particlesystem_reset_all(struct Object *object)
void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob, struct Scene *scene, int duplis)
#define PTCACHE_TYPE_PARTICLES
#define PTCACHE_RESET_OUTDATED
int BKE_ptcache_object_reset(struct Scene *scene, struct Object *ob, int mode)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_scene_object_base_flag_sync_from_base(struct Base *base)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
struct LinkData * BLI_genericNodeN(void *data)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void void BLI_INLINE bool BLI_listbase_is_single(const struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
#define CLOG_WARN(clg_ref,...)
struct Depsgraph Depsgraph
void DEG_graph_free(Depsgraph *graph)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ MOTIONPATH_BAKE_HAS_PATHS
Object groups, one object can be in many groups at once.
@ COLLECTION_HIDE_VIEWPORT
@ LAYER_COLLECTION_EXCLUDE
@ LAYER_COLLECTION_HIDE_VIEWPORT
@ LAYER_COLLECTION_HAS_OBJECTS
#define OB_MODE_ALL_PAINT
#define OB_MODE_ALL_PAINT_GPENCIL
#define OB_MODE_ALL_SCULPT
#define PFIELD_SHAPE_SURFACE
Object is a sort of wrapper for general info.
#define OB_TYPE_SUPPORT_EDITMODE(_type)
#define OBEDIT_FROM_VIEW_LAYER(view_layer)
#define OBACT(_view_layer)
#define V3D_LOCAL_COLLECTIONS
@ ANIMVIZ_CALC_RANGE_FULL
@ ANIMVIZ_CALC_RANGE_CURRENT_FRAME
@ ANIMVIZ_CALC_RANGE_CHANGED
void ED_mball_editmball_free(struct Object *obedit)
void ED_mball_editmball_make(struct Object *obedit)
void ED_mball_editmball_load(struct Object *obedit)
void ED_mesh_mirror_topo_table_end(struct Object *ob)
void EDBM_mesh_load_ex(struct Main *bmain, struct Object *ob, bool free_data)
void EDBM_mesh_free_data(struct BMEditMesh *em)
void ED_mesh_mirror_spatial_table_end(struct Object *ob)
bool EDBM_selectmode_set_multi(struct bContext *C, short selectmode)
void EDBM_mesh_make(struct Object *ob, int select_mode, bool add_key_index)
struct ModifierData * ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type)
bool ED_object_mode_set_ex(struct bContext *C, eObjectMode mode, bool use_undo, struct ReportList *reports)
bool ED_object_mode_compat_test(const struct Object *ob, eObjectMode mode)
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode)
bool ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md)
@ OBJECT_PATH_CALC_RANGE_CHANGED
@ OBJECT_PATH_CALC_RANGE_CURRENT_FRAME
@ OBJECT_PATH_CALC_RANGE_FULL
bool ED_object_mode_compat_set(struct bContext *C, struct Object *ob, eObjectMode mode, struct ReportList *reports)
bool ED_outliner_collections_editor_poll(struct bContext *C)
void ED_outliner_selected_objects_get(const struct bContext *C, struct ListBase *objects)
bool ED_operator_object_active_editable_ex(struct bContext *C, const Object *ob)
bool ED_operator_object_active_editable(struct bContext *C)
bool ED_operator_view3d_active(struct bContext *C)
bool ED_operator_objectmode(struct bContext *C)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
uiBlock * uiLayoutGetBlock(uiLayout *layout)
void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
struct uiLayout * UI_popup_menu_layout(uiPopupMenu *pup)
void uiItemS(uiLayout *layout)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void uiItemFullO_ptr(uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, struct IDProperty *properties, wmOperatorCallContext context, int flag, struct PointerRNA *r_opptr)
void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *pup)
void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg)
void UI_block_flag_enable(uiBlock *block, int flag)
void uiLayoutSetOperatorContext(uiLayout *layout, wmOperatorCallContext opcontext)
uiPopupMenu * UI_popup_menu_begin(struct bContext *C, const char *title, int icon) ATTR_NONNULL()
int UI_icon_color_from_collection(const struct Collection *collection)
#define NS_EDITMODE_CURVES
#define NS_EDITMODE_ARMATURE
#define NS_EDITMODE_MBALL
#define NS_EDITMODE_LATTICE
#define NS_EDITMODE_CURVE
void animviz_calc_motionpaths(Depsgraph *depsgraph, Main *bmain, Scene *scene, ListBase *targets, eAnimvizCalcRange range, bool restore)
void animviz_get_object_motionpaths(Object *ob, ListBase *targets)
Depsgraph * animviz_depsgraph_build(Main *bmain, Scene *scene, ViewLayer *view_layer, ListBase *targets)
void animviz_motionpath_compute_range(Object *ob, Scene *scene)
void ED_armature_edit_free(struct bArmature *arm)
void ED_armature_from_edit(Main *bmain, bArmature *arm)
void ED_armature_to_edit(bArmature *arm)
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
const Depsgraph * depsgraph
void ED_curve_editnurb_make(Object *obedit)
void ED_curve_editnurb_free(Object *obedit)
void ED_curve_editnurb_load(Main *bmain, Object *obedit)
void ED_curve_editfont_make(Object *obedit)
void ED_curve_editfont_load(Object *obedit)
void ED_curve_editfont_free(Object *obedit)
ccl_global KernelShaderEvalInput * input
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void ED_object_check_force_modifiers(Main *bmain, Scene *scene, Object *object)
bool ED_object_editmode_exit_ex(Main *bmain, Scene *scene, Object *obedit, int flag)
static int posemode_exec(bContext *C, wmOperator *op)
static int object_hide_collection_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void OBJECT_OT_move_to_collection(wmOperatorType *ot)
void OBJECT_OT_mode_set_with_submode(wmOperatorType *ot)
void ED_objects_clear_paths(bContext *C, bool only_selected)
static int shade_smooth_exec(bContext *C, wmOperator *op)
void OBJECT_OT_hide_view_clear(wmOperatorType *ot)
Object * ED_object_active_context(const bContext *C)
bool ED_object_editmode_free_ex(Main *bmain, Object *obedit)
static int move_to_collection_menus_create(wmOperator *op, MoveToCollectionData *menu)
void ED_objects_recalculate_paths(bContext *C, Scene *scene, eObjectPathCalcRange range, ListBase *ld_objects)
static bool shade_poll(bContext *C)
static bool has_pose_motion_paths(Object *ob)
void OBJECT_OT_hide_collection(wmOperatorType *ot)
static void move_to_collection_menus_free(MoveToCollectionData **menu)
static int object_clear_paths_exec(bContext *C, wmOperator *op)
bool ED_object_editmode_exit_multi_ex(Main *bmain, Scene *scene, ViewLayer *view_layer, int flag)
static eAnimvizCalcRange object_path_convert_range(eObjectPathCalcRange range)
void OBJECT_OT_paths_update(wmOperatorType *ot)
bool ED_object_editmode_enter_ex(Main *bmain, Scene *scene, Object *ob, int flag)
static bool object_update_paths_poll(bContext *C)
static bool has_object_motion_paths(Object *ob)
void OBJECT_OT_posemode_toggle(wmOperatorType *ot)
static ListBase selected_objects_get(bContext *C)
static int object_hide_view_clear_exec(bContext *C, wmOperator *op)
static int move_to_collection_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void OBJECT_OT_link_to_collection(wmOperatorType *ot)
void ED_objects_recalculate_paths_visible(bContext *C, Scene *scene, eObjectPathCalcRange range)
static bool object_update_all_paths_poll(bContext *UNUSED(C))
static int object_update_all_paths_exec(bContext *C, wmOperator *UNUSED(op))
static int object_mode_set_exec(bContext *C, wmOperator *op)
static int move_to_collection_exec(bContext *C, wmOperator *op)
static bool object_hide_poll(bContext *C)
static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op))
void OBJECT_OT_hide_view_set(wmOperatorType *ot)
void OBJECT_OT_paths_clear(wmOperatorType *ot)
void OBJECT_OT_forcefield_toggle(wmOperatorType *ot)
Object ** ED_object_array_in_mode_or_selected(bContext *C, bool(*filter_fn)(const Object *ob, void *user_data), void *filter_user_data, uint *r_objects_len)
static int object_hide_view_set_exec(bContext *C, wmOperator *op)
static int object_clear_paths_invoke(bContext *C, wmOperator *op, const wmEvent *event)
bool ED_object_editmode_enter(bContext *C, int flag)
static int editmode_toggle_exec(bContext *C, wmOperator *op)
static bool object_mode_set_poll(bContext *C)
static MoveToCollectionData * master_collection_menu
void ED_collection_hide_menu_draw(const bContext *C, uiLayout *layout)
void OBJECT_OT_editmode_toggle(wmOperatorType *ot)
static int object_calculate_paths_exec(bContext *C, wmOperator *op)
bool ED_object_editmode_load(Main *bmain, Object *obedit)
void OBJECT_OT_shade_flat(wmOperatorType *ot)
static const EnumPropertyItem * object_mode_set_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
static bool mesh_needs_keyindex(Main *bmain, const Mesh *me)
static bool ED_object_editmode_load_free_ex(Main *bmain, Object *obedit, const bool load_data, const bool free_data)
void OBJECT_OT_paths_update_visible(wmOperatorType *ot)
#define COLLECTION_INVALID_INDEX
void OBJECT_OT_shade_smooth(wmOperatorType *ot)
bool ED_object_editmode_exit(bContext *C, int flag)
static int object_update_paths_exec(bContext *C, wmOperator *op)
Object * ED_object_context(const bContext *C)
static void move_to_collection_menus_items(struct uiLayout *layout, struct MoveToCollectionData *menu)
static bool editmode_toggle_poll(bContext *C)
static bool move_to_collection_poll(bContext *C)
static void move_to_collection_menu_create(bContext *C, uiLayout *layout, void *menu_v)
void OBJECT_OT_paths_calculate(wmOperatorType *ot)
static void move_to_collection_menus_free_recursive(MoveToCollectionData *menu)
void OBJECT_OT_mode_set(wmOperatorType *ot)
void ED_objects_recalculate_paths_selected(bContext *C, Scene *scene, eObjectPathCalcRange range)
static int object_calculate_paths_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
bool ED_object_editmode_exit_multi(bContext *C, int flag)
static void object_clear_mpath(Object *ob)
static int object_hide_collection_exec(bContext *C, wmOperator *op)
bool ED_object_posemode_enter(bContext *C, Object *ob)
bool ED_object_posemode_enter_ex(struct Main *bmain, Object *ob)
bool ED_object_posemode_exit_ex(struct Main *bmain, Object *ob)
bool ED_object_posemode_exit(bContext *C, Object *ob)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
float RNA_float_get(PointerRNA *ptr, const char *name)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value)
const EnumPropertyItem rna_enum_motionpath_display_type_items[]
const EnumPropertyItem rna_enum_motionpath_range_items[]
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_enum_flag(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
void RNA_enum_items_add_value(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item, int value)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem rna_enum_object_mode_items[]
const EnumPropertyItem rna_enum_mesh_select_mode_items[]
struct EditFont * editfont
struct EditLatt * editlatt
ListBase layer_collections
unsigned short local_collections_bits
struct BMEditMesh * edit_mesh
struct wmOperatorType * ot
struct MoveToCollectionData * prev
struct MoveToCollectionData * next
struct Collection * collection
struct Collection * master_collection
struct ToolSettings * toolsettings
unsigned short local_collections_uuid
ListBase layer_collections
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
const char * translation_context
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
#define WM_msg_publish_rna_prop(mbus, id_, data_, type_, prop_)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
int WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width)