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

Nicholas Bishop nicholasbishop at gmail.com
Sat Nov 28 18:17:48 CET 2009


In rna_object.c you're returning a value in a void function
(rna_Object_modifier_remove). Wasn't sure if you meant this function
to have a return type or not, so I'll let you fix :)

-Nicholas

On Sat, Nov 28, 2009 at 8:33 AM, Campbell Barton <ideasman42 at gmail.com> wrote:
> 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. @@
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list