139 #define INDEX_UNSET -1
140 int par1, par2, par3, par4;
192 for (
Nurb *nu = editnurb->
first; nu !=
NULL; nu = nu->next) {
195 for (
int curr_index = 0; curr_index < nu->pntsu; curr_index++, bezt++) {
217 const int num_points = nu->pntsu * nu->pntsv;
218 for (
int curr_index = 0; curr_index < num_points; curr_index++, bp++) {
246 for (
int curr_index = 0; curr_index < num_points; curr_index++, bp++) {
319 ot->
name =
"Make Vertex Parent";
320 ot->
description =
"Parent selected objects to the selected vertices";
321 ot->
idname =
"OBJECT_OT_vertex_parent_set";
399 BLI_snprintf(name,
sizeof(name),
"%s_proxy", ((
ID *)(gob ? gob : ob))->name + 2);
452 item_tmp.
value = i++;
469 ot->
idname =
"OBJECT_OT_proxy_make";
470 ot->
description =
"Add empty object to become local replacement data of a library-linked object";
487 "Name of library-linked/collection object to make a proxy for");
504 "Completely clear the parenting relationship, including involved modifiers if any"},
506 "CLEAR_KEEP_TRANSFORM",
508 "Clear and Keep Transformation",
509 "As 'Clear Parent', but keep the current visual transformations of the object"},
513 "Clear Parent Inverse",
514 "Reset the transform corrections applied to the parenting relationship, does not remove "
619 ot->
name =
"Clear Parent";
621 ot->
idname =
"OBJECT_OT_parent_clear";
671 {
PAR_CURVE,
"CURVE", 0,
"Curve Deform",
""},
687 const bool keep_transform,
688 const int vert_par[3])
760 if (keep_transform) {
858 ob->
par1 = vert_par[0];
871 const bool is_armature_parent =
ELEM(
876 float cmat[4][4], vec[3];
951 const float *co_find = child->
obmat[3];
953 KDTreeNearest_3d nearest[3];
956 tot = BLI_kdtree_3d_find_nearest_n(
tree, co_find, nearest, 3);
960 vert_par[0] = nearest[0].index;
961 vert_par[1] = nearest[1].index;
962 vert_par[2] = nearest[2].index;
967 vert_par[0] = BLI_kdtree_3d_find_nearest(
tree, co_find,
NULL);
987 if (ob == parenting_context->
par) {
995 parenting_context->
scene,
997 parenting_context->
par,
1012 struct KDTree_3d *
tree)
1014 int vert_par[3] = {0, 0, 0};
1017 if (ob == parenting_context->
par) {
1026 parenting_context->
scene,
1028 parenting_context->
par,
1048 if (tree_tot < (parenting_context->
is_vertex_tri ? 3 : 1)) {
1050 BLI_kdtree_3d_free(
tree);
1055 BLI_kdtree_3d_free(
tree);
1107 IFACE_(
"Object (Keep Transform)"),
1118 layout,
IFACE_(
"Object (Without Inverse)"), ICON_NONE,
"OBJECT_OT_parent_no_inverse_set");
1122 } has_children_of_type = {0};
1125 if (child == parent) {
1129 has_children_of_type.mesh =
true;
1132 has_children_of_type.gpencil =
true;
1140 if (!has_children_of_type.gpencil) {
1143 if (has_children_of_type.mesh || has_children_of_type.gpencil) {
1184 if (
STREQ(prop_id,
"xmirror")) {
1198 ot->
name =
"Make Parent";
1200 ot->
idname =
"OBJECT_OT_parent_set";
1217 "Apply weights symmetrically along X axis, for Envelope/Automatic vertex groups creation");
1222 "Apply transformation before parenting");
1247 memset(ob->loc, 0,
sizeof(
float[3]));
1270 ot->
name =
"Make Parent without Inverse";
1271 ot->
description =
"Set the object's parenting without setting the inverse parent correction";
1272 ot->
idname =
"OBJECT_OT_parent_no_inverse_set";
1297 "CLEAR_KEEP_TRANSFORM",
1299 "Clear and Keep Transformation (Clear Track)",
1322 for (con = ob->constraints.last; con; con = pcon) {
1347 ot->
name =
"Clear Track";
1348 ot->
description =
"Clear tracking constraint or flag from object";
1349 ot->
idname =
"OBJECT_OT_track_clear";
1470 ot->
description =
"Make the object track another object, using various methods/constraints";
1471 ot->
idname =
"OBJECT_OT_track_set";
1521 if (scene_to ==
NULL) {
1620 bool is_cycle =
false;
1621 bool is_lib =
false;
1631 Object *ob_dst = base_dst->object;
1633 if (ob_src != ob_dst) {
1635 obdata_id = ob_dst->
data;
1641 obdata_id = ob_src->
data;
1643 ob_dst->
data = obdata_id;
1661 if (ob_dst->data && ob_src->data) {
1678 for (collection_node = ob_collections; collection_node;
1679 collection_node = collection_node->
next) {
1680 if (ob_dst->instance_collection != collection_node->
link) {
1690 ob_dst->instance_collection = ob_src->instance_collection;
1691 if (ob_dst->instance_collection) {
1692 id_us_plus(&ob_dst->instance_collection->id);
1703 Curve *cu_src = ob_src->data;
1704 Curve *cu_dst = ob_dst->data;
1711 if (cu_dst->
vfont) {
1748 if (ob_collections) {
1774 ot->
name =
"Link Objects to Scene";
1776 ot->
idname =
"OBJECT_OT_make_links_scene";
1796 {
MAKE_LINKS_OBDATA,
"OBDATA", 0,
"Link Object Data",
"Replace assigned Object Data"},
1801 "Link Animation Data",
1802 "Replace assigned Animation Data"},
1803 {
MAKE_LINKS_GROUP,
"GROUPS", 0,
"Link Collections",
"Replace assigned Collections"},
1807 "Link Instance Collection",
1808 "Replace assigned Collection Instance"},
1809 {
MAKE_LINKS_FONTS,
"FONTS", 0,
"Link Fonts to Text",
"Replace Text object Fonts"},
1815 "Copy Grease Pencil Effects",
1816 "Replace Grease Pencil Effects"},
1821 ot->
name =
"Link/Transfer Data";
1822 ot->
description =
"Transfer data from active object to selected objects";
1823 ot->
idname =
"OBJECT_OT_make_links_data";
1844 if (do_collection) {
1861 const bool copy_collections,
1862 const bool is_master_collection)
1866 if (copy_collections && !is_master_collection) {
1869 collection =
ID_NEW_SET(collection, collection_new);
1890 for (; child !=
NULL; child = child_next) {
1891 child_next = child->
next;
1895 if (is_master_collection && copy_collections && child->
collection != collection_child_new) {
1903 if (child == orig_child_last) {
2027 printf(
"ERROR %s: can't copy %s\n", __func__,
id->
name);
2075 for (
a = 1;
a <= ob->totcol;
a++) {
2081 if (ma->
id.
us > 1) {
2134 ID *data_id = (
ID *)object->data;
2149 ID *data_id = (
ID *)object->data;
2168 bool changed =
false;
2192 for (strip = strips->
first; strip; strip = strip->
next) {
2255 "Orphan library objects added to the current scene to avoid loss");
2269 for (psys = ob->particlesystem.first; psys; psys = psys->
next) {
2274 for (
a = 0;
a < ob->totcol;
a++) {
2283 for (
a = 0;
a < ob->totcol;
a++) {
2294 ID *ob_data = ob->data;
2314 "SELECT_OBDATA_MATERIAL",
2316 "Selected Objects, Data and Materials",
2324 ot->
description =
"Make library linked data-blocks local to this file";
2325 ot->
idname =
"OBJECT_OT_make_local";
2401 "Can only make library override for a referenced object or collection");
2412 bool is_override_instancing_object =
false;
2419 "Collection '%s' (instantiated by the active object) is not overridable",
2425 is_override_instancing_object =
true;
2429 const uint collection_session_uuid = *((
uint *)&i);
2433 "Active object '%s' is not overridable",
2439 &collection_session_uuid,
2440 sizeof(collection_session_uuid),
2441 offsetof(
ID, session_uuid));
2445 "Could not find an overridable collection containing object '%s'",
2449 id_root = &collection->
id;
2453 id_root = &obact->
id;
2459 bmain,
scene, view_layer, id_root, &obact->
id);
2463 if (success && is_override_instancing_object) {
2503 item_tmp.
value = *((
int *)&collection->id.session_uuid);
2517 ot->
name =
"Make Library Override";
2518 ot->
description =
"Make a local override of this library linked data-block";
2519 ot->
idname =
"OBJECT_OT_make_override_library";
2535 "Override Collection",
2536 "Name of directly linked collection containing the selected object, to make "
2537 "an override from");
2560 const bool is_override_instancing_object = ob_proxy_group !=
NULL;
2568 "Could not create a library override from proxy '%s' (might use already local data?)",
2575 if (success && is_override_instancing_object) {
2588 ot->
name =
"Convert Proxy to Override";
2589 ot->
description =
"Convert a proxy to a local library override";
2590 ot->
idname =
"OBJECT_OT_convert_proxy_to_override";
2618 const bool copy_collections =
false;
2619 bool update_deps =
false;
2669 ot->
name =
"Make Single User";
2671 ot->
idname =
"OBJECT_OT_make_single_user";
2691 ot->
srna,
"animation", 0,
"Object Animation",
"Make animation data local to each object");
2729 ot->
name =
"Drop Named Material on Object";
2730 ot->
idname =
"OBJECT_OT_drop_named_material";
2791 ot->
idname =
"OBJECT_OT_unlink_data";
Blender kernel action and pose functionality.
struct bPoseChannel * BKE_pose_channel_active(struct Object *ob)
void BKE_animdata_copy_id_action(struct Main *bmain, struct ID *id)
bool BKE_animdata_copy_id(struct Main *bmain, struct ID *id_to, struct ID *id_from, const int flag)
struct AnimData * BKE_animdata_from_id(struct ID *id)
void BKE_pose_rebuild(struct Main *bmain, struct Object *ob, struct bArmature *arm, const bool do_id_user)
Camera data-block and utility functions.
struct ListBase BKE_collection_object_cache_get(struct Collection *collection)
#define FOREACH_COLLECTION_OBJECT_RECURSIVE_END
#define FOREACH_SCENE_OBJECT_END
bool BKE_collection_object_add(struct Main *bmain, struct Collection *collection, struct Object *ob)
bool BKE_collection_has_object(struct Collection *collection, const struct Object *ob)
bool BKE_collection_has_object_recursive(struct Collection *collection, struct Object *ob)
bool BKE_collection_child_add_no_sync(struct Collection *parent, struct Collection *child)
#define FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN(_collection, _object)
void BKE_scene_objects_iterator_end(struct BLI_Iterator *iter)
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
bool BKE_constraint_remove(ListBase *list, struct bConstraint *con)
struct bConstraint * BKE_constraint_add_for_object(struct Object *ob, const char *name, short type)
void BKE_constraint_target_matrix_get(struct Depsgraph *depsgraph, struct Scene *scene, struct bConstraint *con, int index, short ownertype, void *ownerdata, float mat[4][4], float ctime)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Collection * CTX_data_collection(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 Main * CTX_data_main(const bContext *C)
display list (or rather multi purpose list) stuff.
void BKE_displist_make_curveTypes(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, const bool for_render, const bool for_orco)
void BKE_editmesh_looptri_calc(BMEditMesh *em)
struct FModifier * add_fmodifier(ListBase *modifiers, int type, struct FCurve *owner_fcu)
General operations for hairs.
void BKE_view_layer_selected_objects_tag(struct ViewLayer *view_layer, const int tag)
#define FOREACH_OBJECT_FLAG_END
void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
void BKE_main_collection_sync_remap(const struct Main *bmain)
#define FOREACH_OBJECT_FLAG_BEGIN(scene, _view_layer, _v3d, flag, _instance)
struct ID * BKE_id_copy(struct Main *bmain, const struct ID *id)
void id_us_min(struct ID *id)
void BKE_main_id_tag_all(struct Main *mainvar, const int tag, const bool value)
void BKE_main_id_clear_newpoins(struct Main *bmain)
void BKE_library_make_local(struct Main *bmain, const struct Library *lib, struct GHash *old_to_new_ids, const bool untagged_only, const bool set_fake)
void id_us_plus(struct ID *id)
struct ID * BKE_libblock_find_name(struct Main *bmain, const short type, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define MAIN_ID_SESSION_UUID_UNSET
bool BKE_lib_override_library_create(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ID *id_root, struct ID *id_reference)
bool BKE_lib_override_library_proxy_convert(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct Object *ob_proxy)
void BKE_library_foreach_ID_link(struct Main *bmain, struct ID *id, LibraryIDLinkCallback callback, void *user_data, int flag)
void void BKE_libblock_relink_to_newid(struct ID *id) ATTR_NONNULL()
General operations, lookup, etc. for blender lights.
General operations for probes.
General operations, lookup, etc. for materials.
struct Material *** BKE_object_material_array_p(struct Object *ob)
struct Material * BKE_object_material_get(struct Object *ob, short act)
@ BKE_MAT_ASSIGN_USERPREF
void BKE_object_materials_test(struct Main *bmain, struct Object *ob, struct ID *id)
void BKE_object_material_assign(struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type)
struct Object * BKE_modifiers_is_deformed_by_armature(struct Object *ob)
struct Object * BKE_modifiers_is_deformed_by_curve(struct Object *ob)
void BKE_modifier_free(struct ModifierData *md)
void BKE_modifier_remove_from_list(struct Object *ob, struct ModifierData *md)
struct Object * BKE_modifiers_is_deformed_by_lattice(struct Object *ob)
General operations, lookup, etc. for blender objects.
bool BKE_object_parent_loop_check(const struct Object *parent, const struct Object *ob)
void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_src)
struct LinkNode * BKE_object_groups(struct Main *bmain, struct Scene *scene, struct Object *ob)
void BKE_object_groups_clear(struct Main *bmain, struct Scene *scene, struct Object *object)
void BKE_object_workob_calc_parent(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Object *workob)
struct KDTree_3d * BKE_object_as_kdtree(struct Object *ob, int *r_tot)
struct Object * BKE_object_add_from(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, int type, const char *name, struct Object *ob_src) ATTR_NONNULL(1
int BKE_object_scenes_users_get(struct Main *bmain, struct Object *ob)
void BKE_object_make_proxy(struct Main *bmain, struct Object *ob, struct Object *target, struct Object *cob)
void BKE_object_apply_mat4(struct Object *ob, const float mat[4][4], const bool use_compat, const bool use_parent)
General operations for point-clouds.
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_scene_graph_update_tagged(struct Depsgraph *depsgraph, struct Main *bmain)
General operations for speakers.
A kd-tree for nearest neighbor search.
void BLI_kdtree_nd_() free(KDTree *tree)
void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void * BLI_listbase_bytes_find(const ListBase *listbase, const void *bytes, const size_t bytes_size, const int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int min_iii(int a, int b, int c)
void unit_m4(float m[4][4])
bool invert_m4_m4(float R[4][4], const float A[4][4])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_v3_int(int r[3], const int a[3])
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_OVERRIDABLE_LIBRARY(_id)
#define ID_IS_LINKED(_id)
#define ID_NEW_SET(_id, _idn)
@ FMODIFIER_TYPE_GENERATOR
@ BONE_RELATIVE_PARENTING
Object groups, one object can be in many groups at once.
@ CONSTRAINT_TYPE_TRACKTO
@ CONSTRAINT_TYPE_LOCKTRACK
@ CONSTRAINT_TYPE_FOLLOWPATH
@ CONSTRAINT_TYPE_DAMPTRACK
@ CONSTRAINT_OBTYPE_OBJECT
#define BEZT_ISSEL_ANY_HIDDENHANDLES(v3d, bezt)
Object is a sort of wrapper for general info.
#define OB_TYPE_SUPPORT_PARVERT(_type)
#define OB_TYPE_SUPPORT_MATERIAL(_type)
#define FIRSTBASE(_view_layer)
#define BASACT(_view_layer)
@ RPT_ERROR_INVALID_INPUT
#define ARM_GROUPS_ENVELOPE
#define GP_PAR_ARMATURE_NAME
#define GP_PAR_ARMATURE_AUTO
void EDBM_mesh_load(struct Main *bmain, struct Object *ob)
void EDBM_mesh_make(struct Object *ob, const int select_mode, const bool add_key_index)
void EDBM_mesh_normals_update(struct BMEditMesh *em)
struct ModifierData * ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type)
@ CLEAR_PARENT_KEEP_TRANSFORM
void ED_object_shaderfx_link(struct Object *dst, struct Object *src)
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode)
struct Object * ED_object_active_context(const struct bContext *C)
void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob)
bool ED_operator_editsurfcurve(struct bContext *C)
bool ED_operator_object_active_editable(struct bContext *C)
bool ED_operator_editlattice(struct bContext *C)
bool ED_operator_editmesh(struct bContext *C)
bool ED_operator_objectmode(struct bContext *C)
bool ED_operator_object_active(struct bContext *C)
struct Base * ED_view3d_give_base_under_cursor(struct bContext *C, const int mval[2])
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
const EnumPropertyItem * RNA_scene_local_itemf(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop, bool *r_free)
struct uiLayout * UI_popup_menu_layout(uiPopupMenu *pup)
void UI_context_active_but_prop_get_templateID(struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop)
void uiItemFullO_ptr(uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, struct IDProperty *properties, int context, int flag, struct PointerRNA *r_opptr)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *pup)
void uiItemEnumO_ptr(uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, const char *propname, int value)
uiPopupMenu * UI_popup_menu_begin(struct bContext *C, const char *title, int icon) ATTR_NONNULL()
void ED_object_vgroup_calc_from_armature(ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, Object *par, const int mode, const bool mirror)
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar)
const Depsgraph * depsgraph
ListBase * object_editcurve_get(Object *ob)
bool ED_gpencil_add_armature_weights(const bContext *C, ReportList *reports, Object *ob, Object *ob_arm, int mode)
bool ED_gpencil_add_armature(const bContext *C, ReportList *reports, Object *ob, Object *ob_arm)
bool ED_gpencil_add_lattice_modifier(const bContext *C, ReportList *reports, Object *ob, Object *ob_latt)
bAction * ED_id_action_ensure(Main *bmain, ID *id)
FCurve * ED_action_fcurve_ensure(struct Main *bmain, struct bAction *act, const char group[], struct PointerRNA *ptr, const char rna_path[], const int array_index)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
static void single_object_action_users(Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const int flag)
static int make_local_exec(bContext *C, wmOperator *op)
static bool parent_set_vertex_parent(bContext *C, struct ParentingContext *parenting_context)
void OBJECT_OT_convert_proxy_to_override(wmOperatorType *ot)
static int object_track_clear_exec(bContext *C, wmOperator *op)
static void libblock_relink_collection(Collection *collection, const bool do_collection)
static void make_local_material_tag(Material *ma)
static int track_set_exec(bContext *C, wmOperator *op)
@ MAKE_SINGLE_USER_SELECTED
static int parent_set_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int make_proxy_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int make_links_scene_exec(bContext *C, wmOperator *op)
void OBJECT_OT_parent_clear(wmOperatorType *ot)
static const EnumPropertyItem prop_make_track_types[]
static void make_local_animdata_tag(AnimData *adt)
void ED_object_parent_clear(Object *ob, const int type)
static int make_proxy_exec(bContext *C, wmOperator *op)
static bool make_override_library_poll(bContext *C)
static bool make_override_library_object_overridable_check(Main *bmain, Object *object)
static Collection * single_object_users_collection(Main *bmain, Scene *scene, Collection *collection, const int flag, const bool copy_collections, const bool is_master_collection)
static bool parent_set_vertex_parent_with_kdtree(bContext *C, struct ParentingContext *parenting_context, struct KDTree_3d *tree)
void ED_object_parent(Object *ob, Object *par, const int type, const char *substr)
static int convert_proxy_to_override_exec(bContext *C, wmOperator *op)
void OBJECT_OT_track_set(wmOperatorType *ot)
static int object_unlink_data_exec(bContext *C, wmOperator *op)
void OBJECT_OT_track_clear(wmOperatorType *ot)
void OBJECT_OT_unlink_data(wmOperatorType *ot)
static int make_override_library_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool parent_set_nonvertex_parent(bContext *C, struct ParentingContext *parenting_context)
void OBJECT_OT_make_override_library(wmOperatorType *ot)
static void object_remove_parent_deform_modifiers(Object *ob, const Object *par)
static int parent_clear_exec(bContext *C, wmOperator *op)
static int make_single_user_exec(bContext *C, wmOperator *op)
void OBJECT_OT_make_links_scene(wmOperatorType *ot)
static int parent_set_invoke_menu(bContext *C, wmOperatorType *ot)
void OBJECT_OT_parent_no_inverse_set(wmOperatorType *ot)
static void single_obdata_users(Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const int flag)
static void single_object_users(Main *bmain, Scene *scene, View3D *v3d, const int flag, const bool copy_collections)
@ MAKE_LOCAL_SELECT_OBDATA_MATERIAL
@ MAKE_LOCAL_SELECT_OBDATA
static void single_mat_users(Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const int flag)
static int drop_named_material_invoke(bContext *C, wmOperator *op, const wmEvent *event)
@ MAKE_LINKS_DUPLICOLLECTION
@ CLEAR_TRACK_KEEP_TRANSFORM
EnumPropertyItem prop_clear_parent_types[]
static bool make_local_all__instance_indirect_unused(Main *bmain, ViewLayer *view_layer, Collection *collection)
static int make_override_library_exec(bContext *C, wmOperator *op)
void ED_object_single_user(Main *bmain, Scene *scene, Object *ob)
static void make_local_animdata_tag_strips(ListBase *strips)
void OBJECT_OT_make_single_user(wmOperatorType *ot)
static int make_links_data_exec(bContext *C, wmOperator *op)
bool ED_object_parent_set(ReportList *reports, const bContext *C, Scene *scene, Object *const ob, Object *const par, int partype, const bool xmirror, const bool keep_transform, const int vert_par[3])
static const EnumPropertyItem * proxy_collection_object_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
void OBJECT_OT_drop_named_material(wmOperatorType *ot)
void OBJECT_OT_vertex_parent_set(wmOperatorType *ot)
static void tag_localizable_objects(bContext *C, const int mode)
void OBJECT_OT_make_links_data(wmOperatorType *ot)
static int vertex_parent_set_exec(bContext *C, wmOperator *op)
static bool convert_proxy_to_override_poll(bContext *C)
static int parent_set_exec(bContext *C, wmOperator *op)
static bool parent_set_poll_property(const bContext *UNUSED(C), wmOperator *op, const PropertyRNA *prop)
void OBJECT_OT_make_local(wmOperatorType *ot)
static int parent_noinv_set_exec(bContext *C, wmOperator *op)
static const EnumPropertyItem * make_override_collections_of_linked_object_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
void OBJECT_OT_proxy_make(wmOperatorType *ot)
static bool allow_make_links_data(const int type, Object *ob_src, Object *ob_dst)
void OBJECT_OT_parent_set(wmOperatorType *ot)
static int tag_localizable_looper(LibraryIDLinkCallbackData *cb_data)
EnumPropertyItem prop_make_parent_types[]
static void parent_set_vert_find(KDTree_3d *tree, Object *child, int vert_par[3], bool is_tri)
static bool vertex_parent_set_poll(bContext *C)
static const EnumPropertyItem prop_clear_track_types[]
const char * RNA_property_identifier(const PropertyRNA *prop)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
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)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
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)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
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 DummyRNA_DEFAULT_items[]
const EnumPropertyItem DummyRNA_NULL_items[]
struct Object * focus_object
struct CameraDOFSettings dof
struct Collection * collection
struct CollectionChild * next
const float * anim_path_accum_length
struct EditLatt * editlatt
struct BMEditMesh * edit_mesh
struct ModifierData * next
struct CurveCache * curve_cache
struct Object * proxy_group
struct Collection * instance_collection
struct Object * proxy_from
struct ParticleSystem * next
struct PropertyRNA * prop
struct Collection * master_collection
struct ToolSettings * toolsettings
struct bConstraint * prev
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
bool(* poll_property)(const struct bContext *C, struct wmOperator *op, const PropertyRNA *prop) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
void WM_cursor_wait(bool val)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_operator_confirm(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_operator_props_popup_confirm(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_enum_search_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))