Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_object.c
| Show First 20 Lines • Show All 373 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| void rna_Object_internal_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | void rna_Object_internal_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| { | { | ||||
| DEG_id_tag_update(ptr->id.data, ID_RECALC_GEOMETRY); | DEG_id_tag_update(ptr->id.data, ID_RECALC_GEOMETRY); | ||||
| WM_main_add_notifier(NC_OBJECT | ND_DRAW, ptr->id.data); | WM_main_add_notifier(NC_OBJECT | ND_DRAW, ptr->id.data); | ||||
| } | } | ||||
| void rna_Object_internal_update_data_dependency(Main *bmain, Scene *scene, PointerRNA *ptr) | |||||
| { | |||||
| DEG_relations_tag_update(bmain); | |||||
| rna_Object_internal_update_data(bmain, scene, ptr); | |||||
| } | |||||
| static void rna_Object_active_shape_update(bContext *C, PointerRNA *ptr) | static void rna_Object_active_shape_update(bContext *C, PointerRNA *ptr) | ||||
| { | { | ||||
| Object *ob = ptr->id.data; | Object *ob = ptr->id.data; | ||||
| Main *bmain = CTX_data_main(C); | Main *bmain = CTX_data_main(C); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| if (CTX_data_edit_object(C) == ob) { | if (CTX_data_edit_object(C) == ob) { | ||||
| /* exit/enter editmode to get new shape */ | /* exit/enter editmode to get new shape */ | ||||
| ▲ Show 20 Lines • Show All 1,141 Lines • ▼ Show 20 Lines | static void rna_Object_boundbox_get(PointerRNA *ptr, float *values) | ||||
| if (bb) { | if (bb) { | ||||
| memcpy(values, bb->vec, sizeof(bb->vec)); | memcpy(values, bb->vec, sizeof(bb->vec)); | ||||
| } | } | ||||
| else { | else { | ||||
| copy_vn_fl(values, sizeof(bb->vec) / sizeof(float), 0.0f); | copy_vn_fl(values, sizeof(bb->vec) / sizeof(float), 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| static bDeformGroup *rna_Object_vgroup_new(Object *ob, const char *name) | static bDeformGroup *rna_Object_vgroup_new(Object *ob, Main *bmain, const char *name) | ||||
| { | { | ||||
| bDeformGroup *defgroup = BKE_object_defgroup_add_name(ob, name); | bDeformGroup *defgroup = BKE_object_defgroup_add_name(ob, name); | ||||
| DEG_relations_tag_update(bmain); | |||||
| WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | ||||
| return defgroup; | return defgroup; | ||||
| } | } | ||||
| static void rna_Object_vgroup_remove(Object *ob, ReportList *reports, PointerRNA *defgroup_ptr) | static void rna_Object_vgroup_remove(Object *ob, | ||||
| Main *bmain, | |||||
| ReportList *reports, | |||||
| PointerRNA *defgroup_ptr) | |||||
| { | { | ||||
| bDeformGroup *defgroup = defgroup_ptr->data; | bDeformGroup *defgroup = defgroup_ptr->data; | ||||
| if (BLI_findindex(&ob->defbase, defgroup) == -1) { | if (BLI_findindex(&ob->defbase, defgroup) == -1) { | ||||
| BKE_reportf(reports, | BKE_reportf(reports, | ||||
| RPT_ERROR, | RPT_ERROR, | ||||
| "DeformGroup '%s' not in object '%s'", | "DeformGroup '%s' not in object '%s'", | ||||
| defgroup->name, | defgroup->name, | ||||
| ob->id.name + 2); | ob->id.name + 2); | ||||
| return; | return; | ||||
| } | } | ||||
| BKE_object_defgroup_remove(ob, defgroup); | BKE_object_defgroup_remove(ob, defgroup); | ||||
| RNA_POINTER_INVALIDATE(defgroup_ptr); | RNA_POINTER_INVALIDATE(defgroup_ptr); | ||||
| DEG_relations_tag_update(bmain); | |||||
| WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | ||||
| } | } | ||||
| static void rna_Object_vgroup_clear(Object *ob) | static void rna_Object_vgroup_clear(Object *ob, Main *bmain) | ||||
| { | { | ||||
| BKE_object_defgroup_remove_all(ob); | BKE_object_defgroup_remove_all(ob); | ||||
| DEG_relations_tag_update(bmain); | |||||
| WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); | ||||
| } | } | ||||
| static void rna_VertexGroup_vertex_add(ID *id, | static void rna_VertexGroup_vertex_add(ID *id, | ||||
| bDeformGroup *def, | bDeformGroup *def, | ||||
| ReportList *reports, | ReportList *reports, | ||||
| int index_len, | int index_len, | ||||
| int *index, | int *index, | ||||
| ▲ Show 20 Lines • Show All 171 Lines • ▼ Show 20 Lines | RNA_def_struct_ui_text( | ||||
| srna, "Vertex Group", "Group of vertices, used for armature deform and other purposes"); | srna, "Vertex Group", "Group of vertices, used for armature deform and other purposes"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_GROUP_VERTEX); | RNA_def_struct_ui_icon(srna, ICON_GROUP_VERTEX); | ||||
| prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); | prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); | ||||
| RNA_def_property_ui_text(prop, "Name", "Vertex group name"); | RNA_def_property_ui_text(prop, "Name", "Vertex group name"); | ||||
| RNA_def_struct_name_property(srna, prop); | RNA_def_struct_name_property(srna, prop); | ||||
| RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexGroup_name_set"); | RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexGroup_name_set"); | ||||
| /* update data because modifiers may use [#24761] */ | /* update data because modifiers may use [#24761] */ | ||||
| RNA_def_property_update(prop, NC_GEOM | ND_DATA | NA_RENAME, "rna_Object_internal_update_data"); | RNA_def_property_update( | ||||
| prop, NC_GEOM | ND_DATA | NA_RENAME, "rna_Object_internal_update_data_dependency"); | |||||
| prop = RNA_def_property(srna, "lock_weight", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "lock_weight", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_ui_text(prop, "", "Maintain the relative weights for the group"); | RNA_def_property_ui_text(prop, "", "Maintain the relative weights for the group"); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", 0); | RNA_def_property_boolean_sdna(prop, NULL, "flag", 0); | ||||
| /* update data because modifiers may use [#24761] */ | /* update data because modifiers may use [#24761] */ | ||||
| RNA_def_property_update(prop, NC_GEOM | ND_DATA | NA_RENAME, "rna_Object_internal_update_data"); | RNA_def_property_update(prop, NC_GEOM | ND_DATA | NA_RENAME, "rna_Object_internal_update_data"); | ||||
| prop = RNA_def_property(srna, "index", PROP_INT, PROP_UNSIGNED); | prop = RNA_def_property(srna, "index", PROP_INT, PROP_UNSIGNED); | ||||
| ▲ Show 20 Lines • Show All 385 Lines • ▼ Show 20 Lines | RNA_def_property_int_funcs(prop, | ||||
| "rna_Object_active_vertex_group_index_set", | "rna_Object_active_vertex_group_index_set", | ||||
| "rna_Object_active_vertex_group_index_range"); | "rna_Object_active_vertex_group_index_range"); | ||||
| RNA_def_property_ui_text( | RNA_def_property_ui_text( | ||||
| prop, "Active Vertex Group Index", "Active index in vertex group array"); | prop, "Active Vertex Group Index", "Active index in vertex group array"); | ||||
| RNA_def_property_update(prop, NC_GEOM | ND_DATA, "rna_Object_internal_update_data"); | RNA_def_property_update(prop, NC_GEOM | ND_DATA, "rna_Object_internal_update_data"); | ||||
| /* vertex groups */ /* add_vertex_group */ | /* vertex groups */ /* add_vertex_group */ | ||||
| func = RNA_def_function(srna, "new", "rna_Object_vgroup_new"); | func = RNA_def_function(srna, "new", "rna_Object_vgroup_new"); | ||||
| RNA_def_function_flag(func, FUNC_USE_MAIN); | |||||
| RNA_def_function_ui_description(func, "Add vertex group to object"); | RNA_def_function_ui_description(func, "Add vertex group to object"); | ||||
| RNA_def_string(func, "name", "Group", 0, "", "Vertex group name"); /* optional */ | RNA_def_string(func, "name", "Group", 0, "", "Vertex group name"); /* optional */ | ||||
| parm = RNA_def_pointer(func, "group", "VertexGroup", "", "New vertex group"); | parm = RNA_def_pointer(func, "group", "VertexGroup", "", "New vertex group"); | ||||
| RNA_def_function_return(func, parm); | RNA_def_function_return(func, parm); | ||||
| func = RNA_def_function(srna, "remove", "rna_Object_vgroup_remove"); | func = RNA_def_function(srna, "remove", "rna_Object_vgroup_remove"); | ||||
| RNA_def_function_flag(func, FUNC_USE_REPORTS); | RNA_def_function_flag(func, FUNC_USE_MAIN | FUNC_USE_REPORTS); | ||||
| RNA_def_function_ui_description(func, "Delete vertex group from object"); | RNA_def_function_ui_description(func, "Delete vertex group from object"); | ||||
| parm = RNA_def_pointer(func, "group", "VertexGroup", "", "Vertex group to remove"); | parm = RNA_def_pointer(func, "group", "VertexGroup", "", "Vertex group to remove"); | ||||
| RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR); | RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR); | ||||
| RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0); | RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0); | ||||
| func = RNA_def_function(srna, "clear", "rna_Object_vgroup_clear"); | func = RNA_def_function(srna, "clear", "rna_Object_vgroup_clear"); | ||||
| RNA_def_function_flag(func, FUNC_USE_MAIN); | |||||
| RNA_def_function_ui_description(func, "Delete all vertex groups from object"); | RNA_def_function_ui_description(func, "Delete all vertex groups from object"); | ||||
| } | } | ||||
| /* object.face_maps */ | /* object.face_maps */ | ||||
| static void rna_def_object_face_maps(BlenderRNA *brna, PropertyRNA *cprop) | static void rna_def_object_face_maps(BlenderRNA *brna, PropertyRNA *cprop) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| ▲ Show 20 Lines • Show All 812 Lines • Show Last 20 Lines | |||||