[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24967] trunk/blender: py/rna api

Campbell Barton ideasman42 at gmail.com
Sat Nov 28 14:33:57 CET 2009


Revision: 24967
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24967
Author:   campbellbarton
Date:     2009-11-28 14:33:56 +0100 (Sat, 28 Nov 2009)

Log Message:
-----------
py/rna api
- object.modifiers.add()/remove()
- armature.edit_bones.active wasnt named correctly

Modified Paths:
--------------
    trunk/blender/release/scripts/op/object.py
    trunk/blender/source/blender/blenkernel/BKE_particle.h
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/editors/include/ED_object.h
    trunk/blender/source/blender/editors/object/object_modifier.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/physics/particle_object.c
    trunk/blender/source/blender/makesrna/intern/rna_armature.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/makesrna/intern/rna_object_force.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c

Modified: trunk/blender/release/scripts/op/object.py
===================================================================
--- trunk/blender/release/scripts/op/object.py	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/release/scripts/op/object.py	2009-11-28 13:33:56 UTC (rev 24967)
@@ -43,8 +43,7 @@
                 return ('FINISHED',)
         
         # adda new modifier
-        bpy.ops.object.modifier_add(type='SUBSURF') # TODO, support adding directly
-        mod = ob.modifiers[-1]
+        mod = ob.modifiers.new("Subsurf", 'SUBSURF')
         mod.levels = level
         return ('FINISHED',)
 

Modified: trunk/blender/source/blender/blenkernel/BKE_particle.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_particle.h	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/blenkernel/BKE_particle.h	2009-11-28 13:33:56 UTC (rev 24967)
@@ -222,7 +222,7 @@
 void psys_particle_on_emitter(struct ParticleSystemModifierData *psmd, int distr, int index, int index_dmcache, float *fuv, float foffset, float *vec, float *nor, float *utan, float *vtan, float *orco, float *ornor);
 struct ParticleSystemModifierData *psys_get_modifier(struct Object *ob, struct ParticleSystem *psys);
 
-void object_add_particle_system(struct Scene *scene, struct Object *ob);
+struct ModifierData *object_add_particle_system(struct Scene *scene, struct Object *ob, char *name);
 void object_remove_particle_system(struct Scene *scene, struct Object *ob);
 struct ParticleSettings *psys_new_settings(char *name, struct Main *main);
 struct ParticleSettings *psys_copy_settings(struct ParticleSettings *part);

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -3268,14 +3268,14 @@
 /************************************************/
 /*			ParticleSettings handling			*/
 /************************************************/
-void object_add_particle_system(Scene *scene, Object *ob)
+ModifierData *object_add_particle_system(Scene *scene, Object *ob, char *name)
 {
 	ParticleSystem *psys;
 	ModifierData *md;
 	ParticleSystemModifierData *psmd;
 
 	if(!ob || ob->type != OB_MESH)
-		return;
+		return NULL;
 
 	psys = ob->particlesystem.first;
 	for(; psys; psys=psys->next)
@@ -3293,7 +3293,11 @@
 		strcpy(psys->name, "ParticleSystem");
 
 	md= modifier_new(eModifierType_ParticleSystem);
-	sprintf(md->name, "ParticleSystem %i", BLI_countlist(&ob->particlesystem));
+
+	if(name)	BLI_strncpy(md->name, name, sizeof(md->name));
+	else		sprintf(md->name, "ParticleSystem %i", BLI_countlist(&ob->particlesystem));
+	modifier_unique_name(&ob->modifiers, md);
+
 	psmd= (ParticleSystemModifierData*) md;
 	psmd->psys=psys;
 	BLI_addtail(&ob->modifiers, md);
@@ -3304,6 +3308,8 @@
 
 	DAG_scene_sort(scene);
 	DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+
+	return md;
 }
 void object_remove_particle_system(Scene *scene, Object *ob)
 {

Modified: trunk/blender/source/blender/editors/include/ED_object.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_object.h	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/editors/include/ED_object.h	2009-11-28 13:33:56 UTC (rev 24967)
@@ -121,7 +121,7 @@
 	MODIFIER_APPLY_SHAPE,
 } eModifier_Apply_Mode;
 
-struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Scene *scene, struct Object *ob, int type);
+struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Scene *scene, struct Object *ob, char *name, int type);
 int ED_object_modifier_remove(struct ReportList *reports, struct Scene *scene, 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);

Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/editors/object/object_modifier.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -43,6 +43,7 @@
 
 #include "BLI_math.h"
 #include "BLI_listbase.h"
+#include "BLI_string.h"
 
 #include "BKE_action.h"
 #include "BKE_curve.h"
@@ -78,7 +79,7 @@
 
 /******************************** API ****************************/
 
-ModifierData *ED_object_modifier_add(ReportList *reports, Scene *scene, Object *ob, int type)
+ModifierData *ED_object_modifier_add(ReportList *reports, Scene *scene, Object *ob, char *name, int type)
 {
 	ModifierData *md=NULL, *new_md=NULL;
 	ModifierTypeInfo *mti = modifierType_getInfo(type);
@@ -94,7 +95,7 @@
 		/* don't need to worry about the new modifier's name, since that is set to the number
 		 * of particle systems which shouldn't have too many duplicates 
 		 */
-		object_add_particle_system(scene, ob);
+		new_md = object_add_particle_system(scene, ob, name);
 	}
 	else {
 		/* get new modifier data to add */
@@ -110,8 +111,12 @@
 		}
 		else
 			BLI_addtail(&ob->modifiers, new_md);
-		
+
+		if(name)
+			BLI_strncpy(new_md->name, name, sizeof(new_md->name));
+
 		/* make sure modifier data has unique name */
+
 		modifier_unique_name(&ob->modifiers, new_md);
 		
 		/* special cases */
@@ -148,8 +153,10 @@
 		if(obmd==md)
 			break;
 	
-	if(!obmd)
+	if(!obmd) {
+		BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'.", ob->id.name, md->name);
 		return 0;
+	}
 
 	/* special cases */
 	if(md->type == eModifierType_ParticleSystem) {
@@ -482,7 +489,7 @@
     Object *ob = CTX_data_active_object(C);
 	int type= RNA_enum_get(op->ptr, "type");
 
-	if(!ED_object_modifier_add(op->reports, scene, ob, type))
+	if(!ED_object_modifier_add(op->reports, scene, ob, NULL, type))
 		return OPERATOR_CANCELLED;
 
 	WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -620,15 +620,15 @@
 
 						switch (partype) {
 						case PAR_CURVE: /* curve deform */
-							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Curve);
+							md= ED_object_modifier_add(op->reports, scene, ob, NULL, eModifierType_Curve);
 							((CurveModifierData *)md)->object= par;
 							break;
 						case PAR_LATTICE: /* lattice deform */
-							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Lattice);
+							md= ED_object_modifier_add(op->reports, scene, ob, NULL, eModifierType_Lattice);
 							((LatticeModifierData *)md)->object= par;
 							break;
 						default: /* armature deform */
-							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Armature);
+							md= ED_object_modifier_add(op->reports, scene, ob, NULL, eModifierType_Armature);
 							((ArmatureModifierData *)md)->object= par;
 							break;
 						}

Modified: trunk/blender/source/blender/editors/physics/particle_object.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_object.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/editors/physics/particle_object.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -69,7 +69,7 @@
 	if(!scene || !ob)
 		return OPERATOR_CANCELLED;
 
-	object_add_particle_system(scene, ob);
+	object_add_particle_system(scene, ob, NULL);
 	WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
 	
 	return OPERATOR_FINISHED;

Modified: trunk/blender/source/blender/makesrna/intern/rna_armature.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_armature.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/makesrna/intern/rna_armature.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -662,7 +662,7 @@
 	RNA_def_struct_sdna(srna, "bArmature");
 	RNA_def_struct_ui_text(srna, "Armature EditBones", "Collection of armature edit bones.");
 
-	prop= RNA_def_property(srna, "edit_bones", PROP_POINTER, PROP_NONE);
+	prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
 	RNA_def_property_struct_type(prop, "EditBone");
 	RNA_def_property_pointer_sdna(prop, NULL, "act_edbone");
 	RNA_def_property_flag(prop, PROP_EDITABLE);

Modified: trunk/blender/source/blender/makesrna/intern/rna_object.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object.c	2009-11-28 13:33:17 UTC (rev 24966)
+++ trunk/blender/source/blender/makesrna/intern/rna_object.c	2009-11-28 13:33:56 UTC (rev 24967)
@@ -940,13 +940,13 @@
 	constraints_set_active(&ob->constraints, (bConstraint *)value.data);
 }
 
-static bConstraint *rna_Object_constraints_new(Object *object, bContext *C, int type)
+static bConstraint *rna_Object_constraint_new(Object *object, bContext *C, int type)
 {
 	WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, object);
 	return add_ob_constraint(object, NULL, type);
 }
 
-static int rna_Object_constraints_remove(Object *object, bContext *C, int index)
+static int rna_Object_constraint_remove(Object *object, bContext *C, int index)
 {
 	int ok = remove_constraint_index(&object->constraints, index);
 	if(ok) {
@@ -957,6 +957,16 @@
 	return ok;
 }
 
+static ModifierData *rna_Object_modifier_new(Object *object, bContext *C, ReportList *reports, char *name, int type)
+{
+	return ED_object_modifier_add(reports, CTX_data_scene(C), object, name, type);
+}
+
+static void rna_Object_modifier_remove(Object *object, bContext *C, ReportList *reports, ModifierData *md)
+{
+	return ED_object_modifier_remove(reports, CTX_data_scene(C), object, md);
+}
+
 #else
 
 static void rna_def_vertex_group(BlenderRNA *brna)
@@ -1248,7 +1258,7 @@
 
 
 	/* Constraint collection */
-	func= RNA_def_function(srna, "new", "rna_Object_constraints_new");

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list