forked from bartvdbraak/blender
Added method clear to most of collections which supports new/remove.
This method not added to animation-specific structures yet/
This commit is contained in:
parent
f48cc83b3e
commit
85497e35d0
@ -205,6 +205,7 @@ void paintface_reveal(struct Object *ob);
|
|||||||
struct bDeformGroup *ED_vgroup_add(struct Object *ob);
|
struct bDeformGroup *ED_vgroup_add(struct Object *ob);
|
||||||
struct bDeformGroup *ED_vgroup_add_name(struct Object *ob, const char *name);
|
struct bDeformGroup *ED_vgroup_add_name(struct Object *ob, const char *name);
|
||||||
void ED_vgroup_delete(struct Object *ob, struct bDeformGroup *defgroup);
|
void ED_vgroup_delete(struct Object *ob, struct bDeformGroup *defgroup);
|
||||||
|
void ED_vgroup_clear(struct Object *ob);
|
||||||
void ED_vgroup_select_by_name(struct Object *ob, const char *name);
|
void ED_vgroup_select_by_name(struct Object *ob, const char *name);
|
||||||
int ED_vgroup_data_create(struct ID *id);
|
int ED_vgroup_data_create(struct ID *id);
|
||||||
int ED_vgroup_give_array(struct ID *id, struct MDeformVert **dvert_arr, int *dvert_tot);
|
int ED_vgroup_give_array(struct ID *id, struct MDeformVert **dvert_arr, int *dvert_tot);
|
||||||
|
@ -139,6 +139,7 @@ enum {
|
|||||||
|
|
||||||
struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type);
|
struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type);
|
||||||
int ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md);
|
int ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md);
|
||||||
|
int ED_object_modifier_clear(struct Main *bmain, struct Scene *scene, struct Object *ob);
|
||||||
int ED_object_modifier_move_down(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
|
int ED_object_modifier_move_down(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
|
||||||
int ED_object_modifier_move_up(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
|
int ED_object_modifier_move_up(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
|
||||||
int ED_object_modifier_convert(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md);
|
int ED_object_modifier_convert(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md);
|
||||||
|
@ -292,5 +292,6 @@ int ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d);
|
|||||||
|
|
||||||
struct BGpic *ED_view3D_background_image_new(struct View3D *v3d);
|
struct BGpic *ED_view3D_background_image_new(struct View3D *v3d);
|
||||||
void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic);
|
void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic);
|
||||||
|
void ED_view3D_background_image_clear(struct View3D *v3d);
|
||||||
|
|
||||||
#endif /* ED_VIEW3D_H */
|
#endif /* ED_VIEW3D_H */
|
||||||
|
@ -157,10 +157,9 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
|
|||||||
return new_md;
|
return new_md;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md)
|
static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgraph)
|
||||||
{
|
{
|
||||||
ModifierData *obmd;
|
ModifierData *obmd;
|
||||||
int sort_depsgraph = 0;
|
|
||||||
|
|
||||||
/* It seems on rapid delete it is possible to
|
/* It seems on rapid delete it is possible to
|
||||||
* get called twice on same modifier, so make
|
* get called twice on same modifier, so make
|
||||||
@ -168,11 +167,9 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob
|
|||||||
for(obmd=ob->modifiers.first; obmd; obmd=obmd->next)
|
for(obmd=ob->modifiers.first; obmd; obmd=obmd->next)
|
||||||
if(obmd==md)
|
if(obmd==md)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if(!obmd) {
|
if(!obmd)
|
||||||
BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'", ob->id.name, md->name);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
/* special cases */
|
/* special cases */
|
||||||
if(md->type == eModifierType_ParticleSystem) {
|
if(md->type == eModifierType_ParticleSystem) {
|
||||||
@ -193,13 +190,13 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob
|
|||||||
if(ob->pd)
|
if(ob->pd)
|
||||||
ob->pd->deflect= 0;
|
ob->pd->deflect= 0;
|
||||||
|
|
||||||
sort_depsgraph = 1;
|
*sort_depsgraph = 1;
|
||||||
}
|
}
|
||||||
else if(md->type == eModifierType_Surface) {
|
else if(md->type == eModifierType_Surface) {
|
||||||
if(ob->pd && ob->pd->shape == PFIELD_SHAPE_SURFACE)
|
if(ob->pd && ob->pd->shape == PFIELD_SHAPE_SURFACE)
|
||||||
ob->pd->shape = PFIELD_SHAPE_PLANE;
|
ob->pd->shape = PFIELD_SHAPE_PLANE;
|
||||||
|
|
||||||
sort_depsgraph = 1;
|
*sort_depsgraph = 1;
|
||||||
}
|
}
|
||||||
else if(md->type == eModifierType_Smoke) {
|
else if(md->type == eModifierType_Smoke) {
|
||||||
ob->dt = OB_TEXTURE;
|
ob->dt = OB_TEXTURE;
|
||||||
@ -238,6 +235,48 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob
|
|||||||
BLI_remlink(&ob->modifiers, md);
|
BLI_remlink(&ob->modifiers, md);
|
||||||
modifier_free(md);
|
modifier_free(md);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md)
|
||||||
|
{
|
||||||
|
int sort_depsgraph = 0;
|
||||||
|
int ok;
|
||||||
|
|
||||||
|
ok= object_modifier_remove(ob, md, &sort_depsgraph);
|
||||||
|
|
||||||
|
if(!ok) {
|
||||||
|
BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'", ob->id.name, md->name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||||
|
|
||||||
|
/* sorting has to be done after the update so that dynamic systems can react properly */
|
||||||
|
if(sort_depsgraph)
|
||||||
|
DAG_scene_sort(bmain, scene);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ED_object_modifier_clear(Main *bmain, Scene *scene, Object *ob)
|
||||||
|
{
|
||||||
|
ModifierData *md =ob->modifiers.first;
|
||||||
|
int sort_depsgraph = 0;
|
||||||
|
|
||||||
|
if(!md)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
while(md) {
|
||||||
|
ModifierData *next_md;
|
||||||
|
|
||||||
|
next_md= md->next;
|
||||||
|
|
||||||
|
object_modifier_remove(ob, md, &sort_depsgraph);
|
||||||
|
|
||||||
|
md= next_md;
|
||||||
|
}
|
||||||
|
|
||||||
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||||
|
|
||||||
/* sorting has to be done after the update so that dynamic systems can react properly */
|
/* sorting has to be done after the update so that dynamic systems can react properly */
|
||||||
|
@ -138,6 +138,23 @@ void ED_vgroup_delete(Object *ob, bDeformGroup *defgroup)
|
|||||||
vgroup_delete_object_mode(ob, dg);
|
vgroup_delete_object_mode(ob, dg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ED_vgroup_clear(Object *ob)
|
||||||
|
{
|
||||||
|
bDeformGroup *dg= (bDeformGroup *)ob->defbase.first;
|
||||||
|
int edit_mode= ED_vgroup_object_is_edit_mode(ob);
|
||||||
|
|
||||||
|
while (dg) {
|
||||||
|
bDeformGroup *next_dg= dg->next;
|
||||||
|
|
||||||
|
if(edit_mode)
|
||||||
|
vgroup_delete_edit_mode(ob, dg);
|
||||||
|
else
|
||||||
|
vgroup_delete_object_mode(ob, dg);
|
||||||
|
|
||||||
|
dg= next_dg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int ED_vgroup_data_create(ID *id)
|
int ED_vgroup_data_create(ID *id)
|
||||||
{
|
{
|
||||||
/* create deform verts */
|
/* create deform verts */
|
||||||
|
@ -3547,7 +3547,7 @@ BGpic *ED_view3D_background_image_new(View3D *v3d)
|
|||||||
return bgpic;
|
return bgpic;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic)
|
void ED_view3D_background_image_remove(View3D *v3d, BGpic *bgpic)
|
||||||
{
|
{
|
||||||
BLI_remlink(&v3d->bgpicbase, bgpic);
|
BLI_remlink(&v3d->bgpicbase, bgpic);
|
||||||
|
|
||||||
@ -3559,3 +3559,16 @@ void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic)
|
|||||||
|
|
||||||
MEM_freeN(bgpic);
|
MEM_freeN(bgpic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ED_view3D_background_image_clear(View3D *v3d)
|
||||||
|
{
|
||||||
|
BGpic *bgpic= v3d->bgpicbase.first;
|
||||||
|
|
||||||
|
while(bgpic) {
|
||||||
|
BGpic *next_bgpic= bgpic->next;
|
||||||
|
|
||||||
|
ED_view3D_background_image_remove(v3d, bgpic);
|
||||||
|
|
||||||
|
bgpic= next_bgpic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -588,6 +588,19 @@ static void rna_Curve_spline_remove(Curve *cu, ReportList *reports, Nurb *nu)
|
|||||||
|
|
||||||
freeNurb(nu);
|
freeNurb(nu);
|
||||||
/* invalidate pointer!, no can do */
|
/* invalidate pointer!, no can do */
|
||||||
|
|
||||||
|
DAG_id_tag_update(&cu->id, OB_RECALC_DATA);
|
||||||
|
WM_main_add_notifier(NC_GEOM|ND_DATA, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rna_Curve_spline_clear(Curve *cu)
|
||||||
|
{
|
||||||
|
ListBase *nurbs= BKE_curve_nurbs(cu);
|
||||||
|
|
||||||
|
freeNurblist(nurbs);
|
||||||
|
|
||||||
|
DAG_id_tag_update(&cu->id, OB_RECALC_DATA);
|
||||||
|
WM_main_add_notifier(NC_GEOM|ND_DATA, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PointerRNA rna_Curve_active_spline_get(PointerRNA *ptr)
|
static PointerRNA rna_Curve_active_spline_get(PointerRNA *ptr)
|
||||||
@ -1200,6 +1213,9 @@ static void rna_def_curve_splines(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove");
|
parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_Curve_spline_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all spline from a curve");
|
||||||
|
|
||||||
prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
|
prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
|
||||||
RNA_def_property_struct_type(prop, "Object");
|
RNA_def_property_struct_type(prop, "Object");
|
||||||
RNA_def_property_pointer_funcs(prop, "rna_Curve_active_spline_get", "rna_Curve_active_spline_set", NULL, NULL);
|
RNA_def_property_pointer_funcs(prop, "rna_Curve_active_spline_get", "rna_Curve_active_spline_set", NULL, NULL);
|
||||||
|
@ -147,6 +147,17 @@ static void rna_MetaBall_elements_remove(MetaBall *mb, ReportList *reports, Meta
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rna_MetaBall_elements_clear(MetaBall *mb)
|
||||||
|
{
|
||||||
|
BLI_freelistN(&mb->elems);
|
||||||
|
|
||||||
|
/* cheating way for importers to avoid slow updates */
|
||||||
|
if(mb->id.us > 0) {
|
||||||
|
DAG_id_tag_update(&mb->id, 0);
|
||||||
|
WM_main_add_notifier(NC_GEOM|ND_DATA, &mb->id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static void rna_def_metaelement(BlenderRNA *brna)
|
static void rna_def_metaelement(BlenderRNA *brna)
|
||||||
@ -234,17 +245,20 @@ static void rna_def_metaball_elements(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_struct_ui_text(srna, "Meta Elements", "Collection of metaball elements");
|
RNA_def_struct_ui_text(srna, "Meta Elements", "Collection of metaball elements");
|
||||||
|
|
||||||
func= RNA_def_function(srna, "new", "rna_MetaBall_elements_new");
|
func= RNA_def_function(srna, "new", "rna_MetaBall_elements_new");
|
||||||
RNA_def_function_ui_description(func, "Add a new spline to the curve");
|
RNA_def_function_ui_description(func, "Add a new element to the metaball");
|
||||||
RNA_def_enum(func, "type", metaelem_type_items, MB_BALL, "", "type for the new meta-element");
|
RNA_def_enum(func, "type", metaelem_type_items, MB_BALL, "", "type for the new meta-element");
|
||||||
parm= RNA_def_pointer(func, "element", "MetaElement", "", "The newly created meta-element");
|
parm= RNA_def_pointer(func, "element", "MetaElement", "", "The newly created meta-element");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
|
|
||||||
func= RNA_def_function(srna, "remove", "rna_MetaBall_elements_remove");
|
func= RNA_def_function(srna, "remove", "rna_MetaBall_elements_remove");
|
||||||
RNA_def_function_ui_description(func, "Remove a spline from a curve");
|
RNA_def_function_ui_description(func, "Remove an element from the metaball");
|
||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "element", "MetaElement", "", "The element to remove");
|
parm= RNA_def_pointer(func, "element", "MetaElement", "", "The element to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_MetaBall_elements_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all elements from the metaball");
|
||||||
|
|
||||||
prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
|
prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
|
||||||
RNA_def_property_pointer_sdna(prop, NULL, "lastelem");
|
RNA_def_property_pointer_sdna(prop, NULL, "lastelem");
|
||||||
RNA_def_property_ui_text(prop, "Active Element", "Last selected element");
|
RNA_def_property_ui_text(prop, "Active Element", "Last selected element");
|
||||||
|
@ -645,6 +645,26 @@ static void rna_NodeTree_node_remove(bNodeTree *ntree, ReportList *reports, bNod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rna_NodeTree_node_clear(bNodeTree *ntree)
|
||||||
|
{
|
||||||
|
bNode *node= ntree->nodes.first;
|
||||||
|
|
||||||
|
while(node) {
|
||||||
|
bNode *next_node= node->next;
|
||||||
|
|
||||||
|
if (node->id)
|
||||||
|
id_us_min(node->id);
|
||||||
|
|
||||||
|
nodeFreeNode(ntree, node);
|
||||||
|
|
||||||
|
node= next_node;
|
||||||
|
}
|
||||||
|
|
||||||
|
ntreeUpdateTree(ntree); /* update group node socket links*/
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
|
||||||
|
}
|
||||||
|
|
||||||
static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, bNodeSocket *in, bNodeSocket *out)
|
static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, bNodeSocket *in, bNodeSocket *out)
|
||||||
{
|
{
|
||||||
bNodeLink *ret;
|
bNodeLink *ret;
|
||||||
@ -687,6 +707,22 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, bNod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rna_NodeTree_link_clear(bNodeTree *ntree)
|
||||||
|
{
|
||||||
|
bNodeLink *link= ntree->links.first;
|
||||||
|
|
||||||
|
while(link) {
|
||||||
|
bNodeLink *next_link= link->next;
|
||||||
|
|
||||||
|
nodeRemLink(ntree, link);
|
||||||
|
|
||||||
|
link= next_link;
|
||||||
|
}
|
||||||
|
ntreeUpdateTree(ntree);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
|
||||||
|
}
|
||||||
|
|
||||||
static bNodeSocket *rna_NodeTree_input_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type)
|
static bNodeSocket *rna_NodeTree_input_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type)
|
||||||
{
|
{
|
||||||
/* XXX should check if tree is a group here! no good way to do this currently. */
|
/* XXX should check if tree is a group here! no good way to do this currently. */
|
||||||
@ -2828,6 +2864,9 @@ static void rna_def_nodetree_link_api(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "link", "NodeLink", "", "The node link to remove");
|
parm= RNA_def_pointer(func, "link", "NodeLink", "", "The node link to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_NodeTree_link_clear");
|
||||||
|
RNA_def_function_ui_description(func, "remove all node links from the node tree");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_def_composite_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
static void rna_def_composite_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
||||||
@ -2856,6 +2895,9 @@ static void rna_def_composite_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_NodeTree_node_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all nodes from this node tree");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_def_shader_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
static void rna_def_shader_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
||||||
@ -2884,6 +2926,9 @@ static void rna_def_shader_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_NodeTree_node_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all nodes from this node tree");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_def_texture_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
static void rna_def_texture_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
||||||
@ -2912,6 +2957,9 @@ static void rna_def_texture_nodetree_api(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
parm= RNA_def_pointer(func, "node", "Node", "", "The node to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_NodeTree_node_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all nodes from this node tree");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_def_node_socket(BlenderRNA *brna)
|
static void rna_def_node_socket(BlenderRNA *brna)
|
||||||
|
@ -1156,6 +1156,16 @@ static void rna_Object_constraints_remove(Object *object, ReportList *reports, b
|
|||||||
WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, object);
|
WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rna_Object_constraints_clear(Object *object)
|
||||||
|
{
|
||||||
|
free_constraints(&object->constraints);
|
||||||
|
|
||||||
|
ED_object_constraint_update(object);
|
||||||
|
ED_object_constraint_set_active(object, NULL);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, object);
|
||||||
|
}
|
||||||
|
|
||||||
static ModifierData *rna_Object_modifier_new(Object *object, bContext *C, ReportList *reports, const char *name, int type)
|
static ModifierData *rna_Object_modifier_new(Object *object, bContext *C, ReportList *reports, const char *name, int type)
|
||||||
{
|
{
|
||||||
return ED_object_modifier_add(reports, CTX_data_main(C), CTX_data_scene(C), object, name, type);
|
return ED_object_modifier_add(reports, CTX_data_main(C), CTX_data_scene(C), object, name, type);
|
||||||
@ -1164,6 +1174,15 @@ static ModifierData *rna_Object_modifier_new(Object *object, bContext *C, Report
|
|||||||
static void rna_Object_modifier_remove(Object *object, bContext *C, ReportList *reports, ModifierData *md)
|
static void rna_Object_modifier_remove(Object *object, bContext *C, ReportList *reports, ModifierData *md)
|
||||||
{
|
{
|
||||||
ED_object_modifier_remove(reports, CTX_data_main(C), CTX_data_scene(C), object, md);
|
ED_object_modifier_remove(reports, CTX_data_main(C), CTX_data_scene(C), object, md);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_OBJECT|ND_MODIFIER|NA_REMOVED, object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rna_Object_modifier_clear(Object *object, bContext *C)
|
||||||
|
{
|
||||||
|
ED_object_modifier_clear(CTX_data_main(C), CTX_data_scene(C), object);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_OBJECT|ND_MODIFIER|NA_REMOVED, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_Object_boundbox_get(PointerRNA *ptr, float *values)
|
static void rna_Object_boundbox_get(PointerRNA *ptr, float *values)
|
||||||
@ -1195,6 +1214,13 @@ static void rna_Object_vgroup_remove(Object *ob, bDeformGroup *defgroup)
|
|||||||
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)
|
||||||
|
{
|
||||||
|
ED_vgroup_clear(ob);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_OBJECT|ND_DRAW, ob);
|
||||||
|
}
|
||||||
|
|
||||||
static void rna_VertexGroup_vertex_add(ID *id, bDeformGroup *def, ReportList *reports, int index_len,
|
static void rna_VertexGroup_vertex_add(ID *id, bDeformGroup *def, ReportList *reports, int index_len,
|
||||||
int *index, float weight, int assignmode)
|
int *index, float weight, int assignmode)
|
||||||
{
|
{
|
||||||
@ -1636,6 +1662,9 @@ static void rna_def_object_constraints(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
/* constraint to remove */
|
/* constraint to remove */
|
||||||
parm= RNA_def_pointer(func, "constraint", "Constraint", "", "Removed constraint");
|
parm= RNA_def_pointer(func, "constraint", "Constraint", "", "Removed constraint");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_Object_constraints_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all constraint from this object");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* object.modifiers */
|
/* object.modifiers */
|
||||||
@ -1684,6 +1713,11 @@ static void rna_def_object_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
/* target to remove*/
|
/* target to remove*/
|
||||||
parm= RNA_def_pointer(func, "modifier", "Modifier", "", "Modifier to remove");
|
parm= RNA_def_pointer(func, "modifier", "Modifier", "", "Modifier to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
/* clear all modifiers */
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_Object_modifier_clear");
|
||||||
|
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
|
||||||
|
RNA_def_function_ui_description(func, "Remove all modifiers from the object");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* object.particle_systems */
|
/* object.particle_systems */
|
||||||
@ -1758,6 +1792,9 @@ static void rna_def_object_vertex_groups(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
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_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_Object_vgroup_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Delete all vertex groups from object");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1194,6 +1194,10 @@ static TimeMarker *rna_TimeLine_add(Scene *scene, const char name[])
|
|||||||
marker->frame= 1;
|
marker->frame= 1;
|
||||||
BLI_strncpy_utf8(marker->name, name, sizeof(marker->name));
|
BLI_strncpy_utf8(marker->name, name, sizeof(marker->name));
|
||||||
BLI_addtail(&scene->markers, marker);
|
BLI_addtail(&scene->markers, marker);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_SCENE|ND_MARKERS, NULL);
|
||||||
|
WM_main_add_notifier(NC_ANIMATION|ND_MARKERS, NULL);
|
||||||
|
|
||||||
return marker;
|
return marker;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1206,6 +1210,17 @@ static void rna_TimeLine_remove(Scene *scene, ReportList *reports, TimeMarker *m
|
|||||||
|
|
||||||
/* XXX, invalidates PyObject */
|
/* XXX, invalidates PyObject */
|
||||||
MEM_freeN(marker);
|
MEM_freeN(marker);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_SCENE|ND_MARKERS, NULL);
|
||||||
|
WM_main_add_notifier(NC_ANIMATION|ND_MARKERS, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rna_TimeLine_clear(Scene *scene)
|
||||||
|
{
|
||||||
|
BLI_freelistN(&scene->markers);
|
||||||
|
|
||||||
|
WM_main_add_notifier(NC_SCENE|ND_MARKERS, NULL);
|
||||||
|
WM_main_add_notifier(NC_ANIMATION|ND_MARKERS, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, const char name[])
|
static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, const char name[])
|
||||||
@ -3605,6 +3620,9 @@ static void rna_def_timeline_markers(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", "Timeline marker to remove");
|
parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", "Timeline marker to remove");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_TimeLine_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all timeline markers");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* scene.keying_sets */
|
/* scene.keying_sets */
|
||||||
|
@ -911,6 +911,12 @@ static void rna_BackgroundImage_remove(View3D *v3d, ReportList *reports, BGpic *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rna_BackgroundImage_clear(View3D *v3d)
|
||||||
|
{
|
||||||
|
ED_view3D_background_image_clear(v3d);
|
||||||
|
WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, v3d);
|
||||||
|
}
|
||||||
|
|
||||||
/* Space Node Editor */
|
/* Space Node Editor */
|
||||||
|
|
||||||
static int rna_SpaceNodeEditor_node_tree_poll(PointerRNA *ptr, PointerRNA value)
|
static int rna_SpaceNodeEditor_node_tree_poll(PointerRNA *ptr, PointerRNA value)
|
||||||
@ -1328,6 +1334,9 @@ static void rna_def_backgroundImages(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
||||||
parm= RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background");
|
parm= RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
|
||||||
|
|
||||||
|
func= RNA_def_function(srna, "clear", "rna_BackgroundImage_clear");
|
||||||
|
RNA_def_function_ui_description(func, "Remove all background images");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_def_space_view3d(BlenderRNA *brna)
|
static void rna_def_space_view3d(BlenderRNA *brna)
|
||||||
|
Loading…
Reference in New Issue
Block a user